说";是”;所有C#WebBrowser JS错误

说";是”;所有C#WebBrowser JS错误,c#,winforms,webbrowser-control,C#,Winforms,Webbrowser Control,我有一个webbrowser控件,但当我尝试加载页面时,它显示了一个JS错误。如果我对所有错误都单击“是”,页面加载正常,页面JavaScript工作正常。 我试着设置 webBrowser.ScriptErrorsSuppressed = true; 但是页面上的JavaScript停止工作(据我所知,这个调用等于在所有JavaScript错误上单击“否”) 我怎样才能解决这个问题?我该怎么做才能不显示页面错误并确认所有错误以继续页面脚本忽略它们?也许您可以尝试以下方法,首先修改浏览器的d

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

我试着设置

webBrowser.ScriptErrorsSuppressed = true;
但是页面上的JavaScript停止工作(据我所知,这个调用等于在所有JavaScript错误上单击“否”)


我怎样才能解决这个问题?我该怎么做才能不显示页面错误并确认所有错误以继续页面脚本忽略它们?

也许您可以尝试以下方法,首先修改浏览器的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;
}
我在我的浏览器页面上测试了成功,也许你可以试一试

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

@J1B回答的较短方法

你必须使用基于IE的蹩脚网络浏览器控制吗?如果没有,您可以使用Chromium引擎,这样您就不会出现这些错误,并且您将拥有完整的HTML5/CSS3支持和更好的整体性能。