c# - JavaScript 未在 .NET WebBrowser 控件中执行

标签 c# javascript .net webbrowser-control

我的两个 friend 测试了我一直从事的一个项目,该项目依赖于使用 WebBrowser 控件,并且设法遇到了 WebBrowser 控件无法在包含的 Web 上执行任何 JavaScript 的持续情况页面。

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

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

Control render

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

他导出了包含启用 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 已启用,此问题仅存在于此测试应用程序及其所属的主项目中。

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

最佳答案

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

关于c# - JavaScript 未在 .NET WebBrowser 控件中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668307/

相关文章:

javascript - Electron getApplicationMenu 返回菜单,其中包含不应存在的 MenuItems

c# - PowerShell:将 block 作为参数传递给函数

c# - TextBoxFor 助手在日期中混合日期和月份

Javascript 文档未加载

c# - 有没有一种方法可以使功能区上的整个控件列表无效?

javascript - 成功后附加 $this 输入的值

.net - 使用 NServiceBus FileShareDataBus 时清理文件

c# - 使用 Func<string, bool> 时如何调用 invoke

c# - 主进程在启动另一个线程后被卡住

c# - 我想在 asp.net c# 中生成字母数字 otp