JavaScript 未在 .NET WebBrowser 控件中执行

问题描述 投票:0回答:2

我的两个朋友测试了我一直在开发的一个依赖于 WebBrowser 控件的使用的项目,并且成功地遇到了一个持续的场景,即 WebBrowser 控件无法在所包含的网页上执行任何 JavaScript。

为了缩小范围,我创建了一个新的 Windows 窗体项目,其中仅包含一个 WebBrowser 控件,并尝试导航到以下页面:http://javatester.org/javascript.html

我朋友电脑上的结果如下(点击放大):

如您所见,当尝试调用 JS 特定代码时,它不会呈现任何内容,或者,如果您在禁用或启用 JS 的 Web 浏览器中查看它,您会看到一些内容。

他导出了包含启用 JavaScript 设置的注册表项(请参阅https://gist.github.com/4699943),每个键中的 1400 值与我使用的相同设置相匹配,当我运行程序我没有问题。

整个测试项目的代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            this.webBrowser1.Navigate("http://javatester.org/javascript.html");
        }
    }
}

如果使用此代码创建一个针对 4.5 框架(无论是在我的机器上还是在他的机器上)的新项目,它可以工作,但是如果使用 4.0 或更低版本创建一个新项目,则会出现上述结果。我不确定这是否是巧合,或者是否确实与问题/解决方案有关。

应该注意的是,如果他在 Internet Explorer 中导航到此页面,则没有任何问题,它会检测到 JavaScript 已启用,此问题仅存在于此测试应用程序及其所属的主项目中。

任何帮助将不胜感激,我花了两个月的时间试图解决这个问题,但仍然无法解决。

c# javascript .net webbrowser-control
2个回答
0
投票

根据我的测试,使用 .NET 4 的 WebBrowser 报告 IE 7.0 的 Web 浏览器代理字符串。因此,请先检查您的 JavaScript 在 IE7 中是否正常工作。


-1
投票

如果您使用网络浏览器控件.Document Text 属性,则不会加载脚本。与 Navigate 方法完美配合。当我从第三方获取 html 时,我需要文档文本属性才能工作。如果我创建一个 html 文件并在常规 IE 浏览器中打开它,相同的 html 内容可以完美地工作。网络浏览器控件有问题。

© www.soinside.com 2019 - 2024. All rights reserved.