我的两个朋友测试了我一直在从事的一个项目,该项目依赖于 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");
}
}
}
如果使用此代码创建一个新项目,该代码针对 4.5 框架(在我的机器或他的机器上)它可以工作,但是如果使用 4.0 或更低版本创建一个,则会出现上述结果。我不确定这是巧合还是确实与问题/解决方案有关。
应该注意的是,如果他在 Internet Explorer 中导航到此页面没有问题,它会检测到 JavaScript 已启用,此问题仅存在于此测试应用程序及其所属的主项目中。
任何帮助将不胜感激,我花了整整两个月的时间试图弄清楚这一点,但仍然无法解决。