目的:在WebBrowser控件中截获用alert、msgbox等弹出的对话框,获取其内容并将其屏蔽,不予显示
参考:《对ExtendedWebBrowser的再扩展(续)》
Extended .NET 2.0 WebBrowser Control
最初是参考对《ExtendedWebBrowser的再扩展(续)》一文,在Extended .NET 2.0 WebBrowser Control基础上添加部分代码来实现此功能,但是实际使用下来发现时灵时不灵,不能完美解决此问题,之后在使用csEXWB过程中发现此程序中可以正常实现此功能,但是由于整个控件与WebBrowser相差较大,难以直接更换,因此研究其代码后将相关部分提取出来用在Extended .NET 2.0 WebBrowser Control上,并增加了少许功能。相关代码如下:
IDocHostShowUI:
其实扩展一文主要就是这里有点问题
ExtendedBrowserMessageEventArgs:
各枚举用于返回弹出对话框的各种状态
主体部分:
插入位置参考扩展一文
调用:
时间太长,已经不记得改动了哪些部分了,如有遗漏还请见谅
以上代码为在ExtendedWebBrowser2中的扩展,如有不明,或者没有找到声明的部分请参考扩展一文,再找不到的话可以在csExWB2中找一下。
将 网上另一段代码略作改造用于完整演示:
PS:MyWebBrowser1.Document.Write("<script>alert('我就是确定按钮啊')</script>");一行无法正常显示