|
最近在做一个基于EmbeddedWB浏览器控件的软件,在测试弹窗的时候,绝大多数弹窗都被屏蔽了。但发现有一个比较强悍的退弹代码,怎么也屏蔽不了这个退弹页面。
打开这个网站,发现了一段利用 object 控件的方式在退出页面的时候强制弹窗的 javascript 代码,代码如下。因为某些需求,不能直接把 javascript 脚本给屏蔽了,所以得另寻他法。
<script type="text/javascript">
<!--
var u = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
function ext() //在关闭IE窗口的时候弹出
{
if(window.event.clientY<132 || altKey) iie.launchURL(popURL);
}
function brs() //插入Object
{
document.body.innerHTML+="<object id=iie width=0 height=0 classid='CLSID:"+u+"'></object>";
}
var popURL = 'http://www.piaoyi.org'; //这里修改成你的退弹网址
eval("window.attachEvent('onload',brs);");
eval("window.attachEvent('onunload',ext);");
//--></script>
代码中的 6BF52A52-394A-11D3-B153-00C04F79FAA6 是微软控制 Windows Media Player 播放器的控件的ID号,这段强弹代码正是利用 这样的一个ActiveX控件 来实现在关闭当前页面的时候触发弹窗的。
那么,不能把 javascript 禁止,那就禁止 ActiveX控件 的执行。在 EmbeddedWB 的 DOWNLOADOPTIONs 选项下 把 DontDownloadActiveX 和 DontExecuteActiveX 属性均设为 TRUE ,即可以禁止ActiceX的下载和执行,也直接把上面的强制退弹代码屏蔽了。在傲游浏览器、TT浏览器里也可以通过设置 禁止下载和运行 ActiveX 的功能屏蔽这样的 退弹代码。 |
|