JavaScript不在.NET WebBrowser控件中执行

ras*_*ing 10 .net javascript c# webbrowser-control

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

为了缩小范围,我创建了一个仅包含WebBrowser控件的新Windows窗体项目,并尝试导航到以下页面: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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mis*_*ook 0

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