对所有C#WebBrowser JS错误说“是”

时间:2017-09-23 09:58:38

标签: c# winforms webbrowser-control

我有一个webbrowser控件,但是当我尝试加载页面时,它向我显示了一个JS错误。如果我对所有错误单击“是”,则正常加载页面并且页面JavaScript工作正常。 enter image description here

我试图设置

webBrowser.ScriptErrorsSuppressed = true;

但页面上的JavaScript停止工作(据我所知,此调用等于在所有JavaScript错误上单击“否”)。

我该如何解决这个问题?我不应该显示页面错误并确认所有这些错误以继续页面脚本忽略它们?

2 个答案:

答案 0 :(得分:1)

也许您可以尝试以下方式,首先修改浏览器的documentcomplete事件,然后设置自己的错误处理程序,代码如下

private void webBrowser_Inner_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
 //other code
       ((WebBrowser)sender).Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error);
// other code
}
private void Window_Error(object sender, HtmlElementErrorEventArgs e)
{     // Ignore the error and suppress the error dialog box.     
    e.Handled = true;
}

我在浏览器页面测试成功,也许你可以尝试一下

答案 1 :(得分:0)

wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler((object s, WebBrowserDocumentCompletedEventArgs e) => {
    ((WebBrowser)s).Document.Window.Error += new HtmlElementErrorEventHandler((object s2, HtmlElementErrorEventArgs e2) => {
        e2.Handled = true;
    });
});

@ J1B答案的更严格的方法