C# HtmlWindow.Error事件获胜';在Javascript错误时无法启动

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

我正在开发一个WinForms控件,该控件使用
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
事件之前可用。