C# HtmlWindow.Error事件获胜';在Javascript错误时无法启动
我正在开发一个WinForms控件,该控件使用C# HtmlWindow.Error事件获胜';在Javascript错误时无法启动,c#,javascript,.net,error-handling,browser,C#,Javascript,.net,Error Handling,Browser,我正在开发一个WinForms控件,该控件使用WebBrowser控件包装Javascript API,因此我需要捕获Javascript错误并将其转换为异常 _browser.Navigated += BrowserNavigated; _browser.DocumentText = "..."; private void BrowserNavigated(object sender, WebBrowserNavigatedEventArgs e) { _browser.Docume
WebBrowser
控件包装Javascript API,因此我需要捕获Javascript错误并将其转换为异常
_browser.Navigated += BrowserNavigated;
_browser.DocumentText = "...";
private void BrowserNavigated(object sender, WebBrowserNavigatedEventArgs e) {
_browser.Document.Window.Error += ScriptError;
}
private void ScriptError(object sender, HtmlElementErrorEventArgs e) {
MessageBox.Show(e.Description);
e.Handled = true;
}
我知道如果刷新页面,这种方法就不起作用,但在我的情况下,这种情况永远不会发生,所以我尽量保持简单。设置DocumentText
后执行BrowserNavigated
方法,但当发生错误时,不会调用ScriptError
方法
有什么想法吗
更新:在文档完成
事件中附加错误
处理程序,而不是导航
现在为某些错误触发脚本错误处理程序。但是,如果由
标记指定的Javascript文件加载失败,然后我尝试使用其中的函数,我仍然会得到通用错误对话框
这是我需要捕捉错误的主要情况,因为如果Javascript文件没有加载,这意味着用户的API密钥无效。此错误与其他错误有何不同?尝试将ScriptError处理程序附加到BrowserNavigated事件之外,就像您为
\u browser.Navigated+=BrowserNavigated所做的那样代码>。。当前发生的情况是,当BrowserNavigated触发时,仅附加处理程序。尝试将ScriptError处理程序附加到BrowserNavigated事件之外,就像对\u browser.Navigated+=BrowserNavigated代码>。。当前发生的情况是,当BrowserNavigated触发时,只有处理程序被连接。无法保证HtmlDocument
在触发Navigated
事件之前可用。无法保证HtmlDocument
在触发Navigated
事件之前可用。