精通ASP.NET中弹出窗口技术
WorkerW类取而代之。同时,也不存在rect.top不相同的情况,由于笔者没有WindowsXP操作系统,所以不能针对WindowsXP作进一步的试验。
(3)、基于IE COM组件的封杀方式 以上两种方式都是把IE窗口当作一个普通的Windows窗口对待,进行判断的。事实上,IE是一个典型的基于COM组件的浏览器,所有的基于IE内核的浏览器都是包装shdocvw.dll文件,然后书写相应的BHO代码。只有这样才能做到真正的控制IE浏览器,而不是方法一、二这样的隔靴搔痒。 还有一种基于IE内核的弹出窗口封杀方法。它可以在弹出窗口打开之前加以拦截。其原理是:每当IE打开一个新的窗口时候都会触发NewWindow事件,执行OnNewWindow2([out] IDispatch*, [out] BOOL *bCancel)方法。重载此方法,判断打开新窗口事件是否发生在浏览页面已经下载完毕之后。如果是,说明是正常的弹出窗口,反之加以拦截。 由于Gosurf这样的浏览器本身就重载了Shocvm.dll组件,所以使用第三种方法就自然成了顺理成章的事。然而在使用过程中有时也会发现,广告过滤不很完美,但原理基本如此。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |