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

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



今天突然想起Greasemonkey这个插件可以在指定的站点上运行自定义JS代码,于是上网简略查了下,参照 这篇文章
,新建了一个脚本,定义目标为所有网站:

// ==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;
}



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


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

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


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

所以代码有部分修改。

你可能感兴趣的:(脚本,F#,电信,firefox,OpenSource)