WebBrowser控件继续执行脚本而不显示脚本错误警告框

时间:2014-04-09 06:52:07

标签: c# .net internet-explorer webbrowser-control

我必须打电话给第三方CRM系统。他们的javascript代码存在一些问题,但网页在IE9中正常运行。

如果我将ScriptErrorsSuppressed设置为false,我将收到错误消息 - "此页面上的此脚本出现错误"在底部 - "你想继续在这个页面上运行脚本吗?"

如果我点击"是"网页将正常工作,"否"另一方面,不会将jquery正确绑定到对象。

如果我将ScriptErrorsSuppressed设置为true,则不会显示错误消息,但这将停止执行脚本,并且网页将无法正常工作。

IE9可以显示脚本错误,但继续执行脚本。有没有办法模仿相同的行为?

  • 我已尝试过堆栈溢出中提供的所有解决方案,但它们会停止执行脚本
  • Web浏览器控件在IE9模式下运行,我设置注册表值以强制IE9

谢谢 -Maigais

1 个答案:

答案 0 :(得分:-1)

我们有几乎相似的任务。我尝试了包括WebBrowser.ScriptErrorsSuppressed = true在内的所有内容。这不是我想要的,因为所有JavaScripts在出现异常后停止工作。 但下一个对我有用:

    public PageWithWebBrowser()
    {
            WebBrowser.DocumentCompleted += OnWebBrowserDocumentCompleted;
            WebBrowser.Navigate("http://www.example.com");             
    }

    private void OnWebBrowserDocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
    {
            WebBrowser.Document.Window.Error += OnWebBrowserDocumentWindowError;
    }

    private void OnWebBrowserDocumentWindowError(object sender, System.Windows.Forms.HtmlElementErrorEventArgs e)
    {
            //Suppresses a dialog and continues running scripts on the page
            e.Handled = true;
    }

正如您所看到的,我使用System.Windows.Forms.WebBrowser控件,可能会使用WPF WebBrowser控件。

希望这会有所帮助。