Chinaunix首页 | 论坛 | 博客
  • 博客访问: 139769
  • 博文数量: 57
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-04 22:57
文章分类

全部博文(57)

文章存档

2011年(1)

2010年(1)

2009年(55)

我的朋友

分类:

2009-02-04 14:49:52

我的电脑已经用了快3年了,1.7单核,好慢。
网页上好多banner,对联等广告,里面都是嵌了狂耗cpu的flash,决定去掉它们。
前提:假设这些banner等广告位在div里面,div有id(考察了自己经常上的几个站点好像都这样的)
例如:spaces.live.com那个banner的id就是AdContainer;cn.reuters.com那个banner的id是banner,其他位置多用类似advert_12345的形式的id。
主要的js很简单,这个firefox的扩展也是只改了一下文档里的helloworld。
 

window.setInterval(function() {
    var getElementsByTagNameIdRegExp = function(tagname, idregexp) {
        var rt = [];
        var objs = content.document.getElementsByTagName(tagname);
        for(var j = 0; j < objs.length; j++) {
            if(typeof(objs[j].id) != 'undefined' && idregexp.test(objs[j].id)) {
                rt.push(objs[j]);
            }
        }
        return rt;
    };
    //delelte ad from webpages

    try {
        var ods = [];
        //spaces.live.com's banner ad

        if(/spaces.live.com/.test(content.window.location.href)) {
            var o = content.document.getElementById('AdContainer');
            if(o) {
                ods.push(o);
            }
        }
        //donews.com banner ad

        if(/donews.com/.test(content.window.location.href)) {
            var o = content.document.getElementById('TopAds');
            if(o) {
                ods.push(o);
            }
            var re = new RegExp('p[0-9]');
            var rts = getElementsByTagNameIdRegExp('IFRAME', re);
            ods = ods.concat(rts);
        }
        //reuters.com's banner ad

        else if(/reuters.com/.test(content.window.location.href)) {
            var o = content.document.getElementById('banner');
            if(o) {
                ods.push(o);
            }
            var re = new RegExp('advert_[0-9]');
            var rts = getElementsByTagNameIdRegExp('DIV', re);
            ods = ods.concat(rts);
        }
        //others sites...

        //now deleting

        for(var i = 0; i < ods.length; i++) {
            ods[i].parentNode.removeChild(ods[i]);
        }
    }
    catch(e) {}
}, 500);

阅读(450) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~