WebBrowser控件中截获用alert、msgbox等弹出的对话框,获取其内容并将其屏蔽,不予显示

目的:在WebBrowser控件中截获用alert、msgbox等弹出的对话框,获取其内容并将其屏蔽,不予显示

参考:《对ExtendedWebBrowser的再扩展(续)》

         《对ExtendedWebBrowser的再扩展》

         Extended .NET 2.0 WebBrowser Control

         csEXWB2

最初是参考对《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>");一行无法正常显示

原文地址:https://www.cnblogs.com/ArRan/p/2813001.html