打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
禁止IE弹出网页和屏蔽网页原理

禁止IE弹出网页和屏蔽网页原理

2467人阅读 评论(0) 收藏 举报

禁止IE的弹出网页

实现原理

为了把事情的来龙去脉弄清楚,先从Internet Explorer的体系结构讲起。Internet Explorer包含一个名为WebBrowser控件的组件,使用它可以轻易的将Web浏览器集成到新的或者已经存在的应用程序中。通过这个控件,程序可以控制整个浏览器的的工作。

WebBrowser包含许多组件,其中很多是COM对象,也就是说可以在应用程序中重复的使用它们。如果想要掌握WebBrowser控件或自动化Internet Explorer,只要了解几个组件就够了。如图所示说明了Internet Explorer4.0的体系结构。

 

    第一个组件是WebBrowser宿主,或称为容器,它是指任何一个可以重复使用的WebBrowser控件的应用程序。WebBrowser控件既是ActiveX控件也是ActiveDocument宿主。由于它是Active控件,所以WebBrowser可以被任何一个ActiveX控件容器所掌握。作为ActiveDocument服务器。如果想加载.xls文件,WebBrowser控件将自动的加载Excel。由Internet Explorer安装,用于读取和显示Web网页,用户再也不必亲手创建便可以加载多个不同文件类型的应用程序了,只要在程序中掌握WebBrowser控件就可以。

    第二个组件为SHDOCVW(读作sh-doc-view,是用shdocvw.dll实现的。它掌握WebBrowser控件,并为宿主程序提供浏览功能。不过虽然SHDOCVW提供了Internet浏览功能,但是它没有Internet Explorer窗口提供的所有功能。即使这样,SHDOCVW还是简化了创建基于Web的应用程序的过程。

    第三个组件是MSHTML.如前所述,MSHTML组件可以读取和显示HTML网页。MSHTML是一个ActiveX服务器,因此可以加载其作为ActiveDocument宿主的应用程序。MSHTML也是一个ActiveX宿主控件。要记住可以将ActiveX控件放在网页上,MSHTML是掌管ActiveX控件的的控件,而且MSHTML还可以掌管其他组件,如Active脚本编程引擎,java应用程序以及插件等。

    WebBrowser4个接口组成,其中3个提供了其所有的功能(第4个接口DwebBrowserEvents2是为事件准备的)。在IE4.0之前,只有两个接口,一个用于WebBrowser控件(IWebBrowser),另一个用于Internet Explorer对象(IWebBrowserApp)。IWebBrowserIwebBrowserApp具有许多相同的功能。因此在为IE4.0扩展WebBrowser功能时,开发者决定创建第3个接口IWebBrowser2,它是从两个接口中派生出来的。

    每次启动IE的时候,操作系统都会调用WebBrowser.dll。只要通过重新定义这个WebBrowser的操作属性和控制属性,就可以实现对IE的完全控制。禁止IE的弹出窗口就是这样实现的。

    当用户在下载一个网页的时候,IE浏览器的WebBrowser会获得一些注册事件,这些事件被定义成DISPID常量,常用的几个事件的标号如下所示:

    DISPID_BEFORENAVIGATE2

    DISPID_NAVIGATECOMPLETE2

    DISPID_DOCUMENTCOMPLETE

    DISPID_DOWNLOADBEGIN

    DISPID_DOWNLOADCOMPLETE

    DISPID_NEWWINDOW2

    DISPID_QUIT

    DISPID_BEFORENAVIGATE2

    从字面上不难理解,DISPID_NEWWINDOW2事件就是需要处理的事件,在这个事件里应该阻止弹出窗口出现。

    生成新的dll之后,需要将它注册。下面来看看具体实现。

禁止浏览浏览某些网页

网络上的资讯有好有坏,应该采取措施,限制对某些网页的浏览。

实现原理

和禁止弹出窗口原理一样,禁止浏览某些网页的做法依旧是修改Internet ExploreWebBrowserCOM DLL库。通过重定义该DLL,就可以实现对IE的浏览设限功能。

和禁止弹出窗口有所区别的是,这次处理的事件是DISPID_BEFORENAVIGATE2事件就是在浏览器浏览网页之前作预处理,从而实现对浏览站点的限制。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WPF 与网页交互(Frame,WebBrowser)(
MOX.cc [C#:在WebBrowser控件中阻止alert[警告框],confirm...
webbrowser控件屏蔽网页错误
WEB 自动化测试演示
BHO编程
迄今为止最完美的VB网页采集方案(附核心代码)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服