在Webbrowser控件中捕获Javascript警报

使用webbrowswer控件巡航网站。 有时会发生错误,其中包含一个javascript弹出框。 发生这种情况时,我想做几件事。

  1. 知道何时弹出javascript警报。

我已经使用LostFocus事件取得了一些成功,但任何时候丢失焦点都会导致代码运行起来很烦人。

  1. 我想知道警报框所说的确切文字。

我不知道在哪里可以找到警报框对象或将其转换为在C#中使用。 我看着整个互联网,却找不到它。

任何一个线索?

如果您只想捕获出现的脚本错误对话框,我建议您捕获window.onerror DOM事件。 如果为此事件分配处理程序,则消息,(脚本)文件名和行号将作为参数传递,这些都是弹出的错误对话框中显示的内容。 请注意,大多数用户默认关闭脚本错误对话框,因此如果预期目的是针对大量受众,则明智地遵守此选项。

我不确定是否有更简单的方法,我只使用旧的COM WebBrowser组件。

这样做:

window.alert = function(txt) { // Do something } 

这将允许您使用警报文本进行回调或其他任何操作。