【问题标题】:WebBrowser Controls Script errorWebBrowser 控件脚本错误
【发布时间】:2012-09-10 01:09:00
【问题描述】:

我正在制作一个访问特定网址的机器人,以表单形式提供输入并通过单击提交按钮提交...

让我解释一下我的情况。当我启动我的机器人时,首先它访问 URL,在加载网页后,我必须在那里手动检查一个单选按钮,然后我按下提交按钮(Windows 表单控制按钮来填充网页的所有字段并提交它通过调用click方法)提交表单。

我正在使用 Web 浏览器控件(以 C#.NET 窗口形式编码),问题是当我单击单选按钮时,会弹出一个带有标题“脚本错误”的弹出窗口并显示

下面是我用IE开发工具复制的单选按钮标签(弹出错误)。

<input name="array(BlastDatabaseType)" onchange="changeQuestion(); changeAlgorithms();"
type="radio" value="Proteins"/>

在普通的网络浏览器上不会发生此错误。 我想解决这个错误不要隐藏。

【问题讨论】:

  • 我猜你想通过编程方式点击提交按钮来提交页面,但是 JavaScript 错误导致了问题?

标签: javascript html winforms bots


【解决方案1】:

IE 以不同的方式处理 onchange 事件。 IE 仅在元素失去焦点时触发 onchange 事件。

如果我正确理解了您的问题,您可能想改用 onkeypress 事件。

【讨论】:

  • 请接受我的道歉。请再考虑一下我的问题。
【解决方案2】:

我从您的问题中了解到,您需要修复由于 Web 浏览器控制而生成的 javascript 错误,

有两种基本的解决方案,

1) 强制 Web Browser 控件模拟最新的 IE 浏览器。 您需要为此进行注册表更改,您将能够使用PC上安装的IE浏览器。

改编自Mikel Solution
您可以在 HTML 页面中使用元标记 &lt;meta http-equiv="X-UA-Compatible" content="IE=9" &gt;

但最好将注册表项添加到:(goto &gt; start &gt; run &gt; type 'regedit' enter)

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER) > SOFTWARE > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION > contoso.exe = (DWORD) 00009000

在 Internet Explorer 10 中使用 10000 (0x02710)

2) 使用 GeckoFX 包装器,它包装了 Gecko 引擎,
下载 GeckoFX wrapper
下载 XulRunner

首先解压 GeckoFX 并阅读 readme.txt 文件。

在您的工具栏中添加 Gecko.dll 的引用,然后将控件拖放到您的窗体上。

public Form1()
    {
        InitializeComponent();
        //you need to extract the Xulrunner in the soultion directory
        //  (preferable) b/c wrapper relies on these dlls.
        Skybound.Gecko.Xpcom.Initialize(@"C:\Xulrunner");
    }

    private void Form1_Load(object sender, EventArgs e)
    {
       geckoWebBrowser1.Navigate("http://tritrypdb.org/tritrypdb/"); 
    }


其他有用的链接:
http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation
Will the IE9 WebBrowser Control Support all of IE9's features, including SVG?

【讨论】:

  • 请记住,FEATURE_BROWSER_EMULATION 有两个不同的版本。有一个用于 64 位应用程序,一个用于 32 位应用程序。见stackoverflow.com/a/42864875/167920
猜你喜欢
  • 1970-01-01
  • 2011-09-02
  • 2016-09-17
  • 2010-11-20
  • 1970-01-01
  • 2011-07-28
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多