JavaScript不在.NET WebBrowser控件中执行

时间:2013-02-03 00:48:33

标签: c# javascript .net webbrowser-control

我的两个朋友已经测试了我一直在研究的项目,该项目依赖于WebBrowser控件的使用,并且设法遇到一个常规场景,其中WebBrowser控件无法在包含的Web上执行任何JavaScript页。

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

我朋友计算机上的结果如下(点击放大):

Control render

正如您所看到的,在尝试调用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已启用,此问题仅存在于此测试应用程序及其所属的主项目中。

任何帮助都会受到赞赏,我花了两个月的时间试图解决这个问题,但仍然不能。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

如果您使用的是webbrowser控件,则不会加载脚本。文档文本属性。使用Navigate方法完全没问题。我需要文档文本属性,因为我从第三方获取HTML。如果我从它创建一个html文件并在常规IE浏览器中打开它,相同的HTML内容工作完全正常。 webbrowser控件有问题。