WebBrowser 控件中屏蔽alert,confirm脚本对话框的方法。

首先在项目引用里面,选择COM选项卡,添加 Microsoft HTML Object Library

添加mshtml命名空间的引用。

下面看代码

IHTMLWindow2 win = (IHTMLWindow2)hdoc.Window.DomWindow;
string s = "function confirm() {";
+= "return true;";
+= "}";
+= "function alert() {}";
win.execScript(s, 
"javascript");

这样就可以解决在WebBrowser中因有消息窗口弹出而影响程序运行过程的问题。

稍加改动还可以控制页面跳转,比如原来的alert()方法是弹出一个提示信息,现在修改后的代码不会有任何操作。

如果你在修改后的代码加上一段自己的处理程序就不一样了。当弹出alert对话框时,我就认为这个页面已经处理完成。

现在我需要处理下一个页面。这样的话就在 function alert() {} 的花括号中添加一段javascript的页面跳转脚本就可以拉。

将代码修改为如下。就可以达到理想的效果。以下测试代码中是在执行alert方法时直接将页面导航至空白页。

Code
原文地址:https://www.cnblogs.com/leeairw/p/1502808.html