我正在使用WebBrowser
控件打包Javascript API的WinForms控件,因此我需要捕获Javascript错误并将其转换为异常。HtmlWindow.Error事件不会触发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
方法。
任何想法?
UPDATE:装上Error
处理器在DocumentCompleted
事件,而不是现在Navigated
火的一些错误的脚本错误处理程序。但是,如果由<script>
标记指定的Javascript文件无法加载,然后尝试使用它的函数,我仍然会得到一般错误对话框。
这是我需要捕捉错误的主要情况,因为如果JavaScript文件未加载,则表示用户的API密钥无效。这个错误与其他错误有何不同?
不能保证'HtmlDocument'在'Navigated'事件触发前才可用。 – 2011-02-25 06:08:35