【发布时间】:2011-07-04 02:25:03
【问题描述】:
我正在开发一个使用WebBrowser 控件包装Javascript API 的WinForms 控件,因此我需要捕获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方法。
有什么想法吗?
更新:在DocumentCompleted 事件中附加Error 处理程序而不是Navigated 现在会针对一些 错误触发脚本错误处理程序。但是,如果 <script> 标记指定的 Javascript 文件无法加载,然后我尝试使用其中的函数,我仍然会得到一般错误对话框。
这是我需要捕获错误的主要情况,因为如果 Javascript 文件未加载,则表示用户的 API 密钥无效。此错误与其他错误有何不同?
【问题讨论】:
标签: c# javascript .net error-handling browser