电信广告跳出 自动版(Firefox + Greasemonkey)

[url=/blog/792007]前面[/url]
发了一段JS代码+keyconfig插件用于跳出电信广告嵌套,但每次还是要自己去操作,蛮麻烦的。


今天突然想起Greasemonkey这个插件可以在指定的站点上运行自定义JS代码,于是上网简略查了下,参照[url=http://www.ibm.com/developerworks/cn/opensource/os-cn-greasemonkey/index.html]这篇文章[/url]
,新建了一个脚本,定义目标为所有网站:


// ==UserScript==
// @name China Telecom sucks
// @namespace adsucks
// @description 狗日的电信广告
// @include http://*
// ==/UserScript==

//2010/11/01重写了实现
//function getRealUrl(){
// var iframe = document.getElementById('fulliframe');
// if(iframe && iframe.tagName === "IFRAME"){
// return iframe.src;
// }else if(window.old_url){
// return window.old_url;
// }
// return null;
//}
//
//var url = getRealUrl();
//if(url){
// setTimeout(function(){
// window.location.href = url;
// }, 0);
//}

function isADInjected(){
var f, url = location.href;
if(window.old_url && old_url === url){
return true;
}else if((f=document.getElementById("fulliframe")) && f.tagName === "IFRAME" && f.name === "fulliframe"){
return true;
}
return false;
}

if(isADInjected()){
location.href = location.href;
}



[color=red](删除)[/color][color=gray]脚本里使用了setTimeout来进行刷新,这是因为测试时直接操作location发现无效。可能与脚本执行时机有关吧?在网上没有查到相关资料,简单地改下,使它在下个任务中执行就成功了。[/color]


如果访问到某个站点检测出有电信的iframe嵌套,就自动跳出去,效果不错哦!

注意:以上代码是针对深圳电信adsl的,可能对其它地区的无效(根据网上帖出来的样本看,各地的实现好像都不一样),所以需要适当DIY了。


---------------------2010/11/01补充----------------
前面关于setTimeout的说明是错误的…… 刚才发现电信的广告框架,初始时iframe是没有src的,而是在脚本中进行赋值。

所以代码有部分修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值