[C#]在WebBrowser中截获弹出对话框内容并将其屏蔽

来源:互联网 发布:贵阳优易数据有限公司 编辑:程序博客网 时间:2024/06/07 06:34

目的:在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>");一行无法正常显示

原创粉丝点击