posts - 225, comments - 62, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
今天发现Firefox上的一款叫Greasemonkey的插件,允许你设置在指定的网友上运行自定义的JavaScript。

我写了一个可以过滤xiaonei广告的脚本,还真挺爽。不知道还能干些什么有趣的事?

// ==UserScript==
//
 @name           BlockXiaoneiAD
//
 @namespace      lecoo
//
 @include        http://home.xiaonei.com/Home.do
//
 ==/UserScript==

function $(id){return document.getElementById(id);}
function HideIt(e){e.style.display = "none";}

//枚举className匹配正则表达式的所有元素执行回调函数
function EnumElementsByClassName(classNamePatrn, callbackFunc, tagName)
{
    
if(tagName == null) tagName = "DIV";
    
var elements = document.getElementsByTagName(tagName);

    
for(i=0;i<elements.length;i++)
    {
        
var e = elements[i];
        
if( classNamePatrn.exec(e.className) )
        {
            callbackFunc(e);
        }
    }
}

//枚举id匹配正则表达式的所有元素执行回调函数
function EnumElementsById(idPatrn, callbackFunc, tagName)
{
    
if(tagName == null) tagName = "DIV";
    
var elements = document.getElementsByTagName(tagName);
    
for(i=0;i<elements.length;i++)
    {
        
var e = elements[i];
        
if( idPatrn.exec(e.id))
        {
            callbackFunc(e);
        }
    }
}

function func()
{
    $('banner').style.display 
= "none";

    EnumElementsByClassName(
/^ad-bar$/, HideIt);
    EnumElementsById(
/^ad[0-9]{1,20}$/, HideIt);
}

setTimeout(func,
2000);
setTimeout(func,
10000);
只有注册用户登录后才能发表评论。