本文作者:风清扬
出处:E代时光V4.10 原创文章区
很久没有关注www.51.net的免费空间的广告了,最近一直挺忙,今天抽出点时间把他的代码又分析了一下:
1.免费空间去掉了弹出式的广告。(省了俺不少力气)
2.但还是存在DIV层广告。(咱还是把它过滤了)
3.还有可恶的插件。(具体的功能还在测试中)
原版本中的窗口过滤代码被很多转载站点改为其广告窗口使用,使程序失去了广告屏蔽功能,呵呵,有这个必要吗?
www.e3i5.com/display/js/0005/banads.asp
有需要的可以关闭脚本功能,查看一下源代码,可能对你在其他方面的脚本特效有帮助。
新代码和原来写代码有点区别,原来是对层的隐藏,现在是将层内容完全删除。使用的脚本函数是:innerHTML 。对此函数比较陌生的朋友可以在GOOGLE里搜索一些脚本教程来认识一下innerHTMLd的解释和用法,这里就不再多讲。
新代码对层的属性加以判断,免除了使用代码后,连自己的层也不能使用的缺点。对于此功能,先给出一个简单的实例,过段时间全部测试完成了,我们再将所有的代码全部发出。
对于插件广告来说,我们对此测试了很久。对于高版本的IE,如IE6.0 SP1,我们始终不能对插件进行一个比较好的屏蔽。相对的如果采用插件屏蔽将对网页内的FLASH来说是一个灾难。对此在程序进行插件屏蔽的同时增加了对51.NET插件的一个属性检测,使网页内的正常OBJECT标签能正常工作。
经过我们测试,整个代码对插件的过滤效果还是有限制的。并不是所有的浏览器,所有版本的IE都对代码能正确执行。IE5.0版本的IE我们通过了测试,对于高版本的IE我们还在修改出更好过滤代码。
对于COOKEIS,51.NET的广告使用COOKIES在本地做为广告验证的依据。我们在原有的COOKEIS写操作写,增加了对COOKIES检测的功能并增长COOKIES的保存时间。
新代码不仅仅对51.net站点免费空间广告有过滤作用,对于其他一些免费空间的广告也有一定的作用。相对于使用层来加载广告的都可以使用该段代码进行广告的屏蔽。当然过一段时间我们会出一份可以各空间共享的代码,毕竟还是专一的代码好。:)
以下是代码的主要部分:
对代码的一些简单的说明:
var Crstr="e3i5,fqy"; //这一句是定义自己使用层的ID值,避免使用层时也被代码过滤掉
用法是:你在网页内的其他DIV层(如果你使用层的话),需要用你定义的ID属性进行标识。如”
<div id="e3i5">文字</div> 这样,这个层就不会被删除。更详细的请看演示页面源代码。
除了以上这句外所有的代码均不可修改,否则将失去屏蔽功能,并产生大量的脚本错误。虽然我们做了异常捕捉,但意外的循环错误会使你的IE非法操作。
请尽量保留我们的版权信息。谢谢。如果觉得代码过长,请将<script></script>之间的代码保存为js文件,在页面中做为外部调用即可,形如:<script src=clearads.js></script>
注1:保存代码时不要直接复制粘贴到你的网页编辑器中(如Frontpage),先将代码复制粘贴到记事本,然后在剪切到编辑器中,否则代码会被做HTMLencode处理,而失去其作用.(很多用户因为如此抱怨代码不能使用).
注2:如果使用代码出现问题请到本站留言板留言,复制代码请尽量使用本站代码,避免转载的复制错误以及无意的代码过滤。一部分用户复制过其他站点转载的代码,由于其站点对脚本进行过转化,使得部分代码被做了HTMLencode处理,从而使代码失效.
呵呵,差点忘记了,还有个演示地址:http://e3i5.51.net/clearads.html
出处:E代时光V4.10 原创文章区
很久没有关注www.51.net的免费空间的广告了,最近一直挺忙,今天抽出点时间把他的代码又分析了一下:
1.免费空间去掉了弹出式的广告。(省了俺不少力气)
2.但还是存在DIV层广告。(咱还是把它过滤了)
3.还有可恶的插件。(具体的功能还在测试中)
原版本中的窗口过滤代码被很多转载站点改为其广告窗口使用,使程序失去了广告屏蔽功能,呵呵,有这个必要吗?
www.e3i5.com/display/js/0005/banads.asp
有需要的可以关闭脚本功能,查看一下源代码,可能对你在其他方面的脚本特效有帮助。
新代码和原来写代码有点区别,原来是对层的隐藏,现在是将层内容完全删除。使用的脚本函数是:innerHTML 。对此函数比较陌生的朋友可以在GOOGLE里搜索一些脚本教程来认识一下innerHTMLd的解释和用法,这里就不再多讲。
新代码对层的属性加以判断,免除了使用代码后,连自己的层也不能使用的缺点。对于此功能,先给出一个简单的实例,过段时间全部测试完成了,我们再将所有的代码全部发出。
对于插件广告来说,我们对此测试了很久。对于高版本的IE,如IE6.0 SP1,我们始终不能对插件进行一个比较好的屏蔽。相对的如果采用插件屏蔽将对网页内的FLASH来说是一个灾难。对此在程序进行插件屏蔽的同时增加了对51.NET插件的一个属性检测,使网页内的正常OBJECT标签能正常工作。
经过我们测试,整个代码对插件的过滤效果还是有限制的。并不是所有的浏览器,所有版本的IE都对代码能正确执行。IE5.0版本的IE我们通过了测试,对于高版本的IE我们还在修改出更好过滤代码。
对于COOKEIS,51.NET的广告使用COOKIES在本地做为广告验证的依据。我们在原有的COOKEIS写操作写,增加了对COOKIES检测的功能并增长COOKIES的保存时间。
新代码不仅仅对51.net站点免费空间广告有过滤作用,对于其他一些免费空间的广告也有一定的作用。相对于使用层来加载广告的都可以使用该段代码进行广告的屏蔽。当然过一段时间我们会出一份可以各空间共享的代码,毕竟还是专一的代码好。:)
以下是代码的主要部分:
<!- 切记将广告过滤代码放到网页的最下端 --> <script language="Javascript"> /*************************************************************** * Put This Code In The Bottom Of The Page. * You Can Use This Word for your DIV's Attribute,Or You Can * Change It By Yourself.But Your DIV's Attribute Must be Fixed * The Words, Which Your Writed In The Following Array! * eg. var Crstr="e3i5,fqy" * You'd Better Insert Two Elements In The Array,We Update It Later! * CopyRight WWW.E3I5.COM 20:45 2005-4-23 ***************************************************************/ var Crstr="e3i5,fqy"; // Please Don't Change The Following Code try { var e3i5 = document.getElementsByTagName("div"); var fqy=e3i5.length; var s=Crstr.split(",") for(j=0;j<s.length;j++) { for (i=0;i<fqy;i++) { if(e3i5[i].getAttribute("id")!=s[j] && e3i5[i].getAttribute("id")!=s[j+1]) { e3i5[i].innerHTML=""; } } } } catch(e){} try //Test This Long Time,Because It Can't Be Exchanged By The Code. { var f9y = document.getElementsByTagName("OBJECT"); var net = f9y.length for (var i=0;i<net;i++) { var anchor = f9y[i]; if (anchor.getAttribute("codebase").indexOf("51.net")!=-1) { anchor.innerHTML=""; anchor.outerHTML=""; } } } catch(e){} try { var cook = document.cookie; if (cook) { var cValues = cook.split(';'); for(i=0;i<cValues.length;i++) { if (cValues[i].match(/ad_lastPP/)) { var data = new Date(); var _data = data.getTime()+100*600*600000; data.setTime(_data); document.cookie = 'ad_lastPP=1; expires='+data.toGMTString(); } } } } catch(e){} function err() { window.onerror="return false"; } err(); </script>
对代码的一些简单的说明:
var Crstr="e3i5,fqy"; //这一句是定义自己使用层的ID值,避免使用层时也被代码过滤掉
用法是:你在网页内的其他DIV层(如果你使用层的话),需要用你定义的ID属性进行标识。如”
<div id="e3i5">文字</div> 这样,这个层就不会被删除。更详细的请看演示页面源代码。
除了以上这句外所有的代码均不可修改,否则将失去屏蔽功能,并产生大量的脚本错误。虽然我们做了异常捕捉,但意外的循环错误会使你的IE非法操作。
请尽量保留我们的版权信息。谢谢。如果觉得代码过长,请将<script></script>之间的代码保存为js文件,在页面中做为外部调用即可,形如:<script src=clearads.js></script>
注1:保存代码时不要直接复制粘贴到你的网页编辑器中(如Frontpage),先将代码复制粘贴到记事本,然后在剪切到编辑器中,否则代码会被做HTMLencode处理,而失去其作用.(很多用户因为如此抱怨代码不能使用).
注2:如果使用代码出现问题请到本站留言板留言,复制代码请尽量使用本站代码,避免转载的复制错误以及无意的代码过滤。一部分用户复制过其他站点转载的代码,由于其站点对脚本进行过转化,使得部分代码被做了HTMLencode处理,从而使代码失效.
呵呵,差点忘记了,还有个演示地址:http://e3i5.51.net/clearads.html
回复Comments
作者:
{commentrecontent}