贴吧去广告js脚本优化问题

u010251519 2013-04-11 11:38:49
小菜刚开始学习javascript,昨天写了一个js用来去除贴子的广告。代码如下:


document.addEventListener("DOMContentLoaded",clearAd(),false);
function clearAd()
{
//alert("in");
var a = document.getElementsByTagName("div");

for (var i = 0; i < a.length; i++ )
{

//帖子上面的广告
if(a[i].className=="l_banner banner_theme_2")//这里一开始写成了a[i].class应该是a[i].className
{
//alert("find it ok! top ad");
a[i].parentNode.removeChild(a[i]); //移除帖子上方广告所在的div
}

//帖子上面的广告
if(a[i].className=="uptown"&&a[i].id=="uptown")
{
//alert("find it ok! top ad2");
a[i].parentNode.removeChild(a[i]);
}

//帖子右侧的广告
if(a[i].className=="aside_ad_pb2"&&a[i].id=="aside_ad")
{
//alert("find it ok! aside pic ad");
a[i].parentNode.removeChild(a[i]); //移除帖子右侧图片广告所在的div
}

//帖子右侧的文字广告
if(a[i].className=="cpro_post cproshow_theme2"&&a[i].id=="cproshow")
{
//alert("find it ok! aside word ad");
a[i].parentNode.removeChild(a[i]); //移除帖子右侧文字广告所在的div
}


}


把这个js保存为baidu.user.js,拖到chrome://extensions/中,这样每打开一个帖子就会执行这段js脚本。
效果是有的,但是每次我打开帖子的时候广告(图片)已经加载了,大概0.5s之后就被我的js脚本给删除了。能否在广告加载之前就把广告给删除呢? 不想让广告存在0.5s的时间,不知道表达清除了吗?求指点。
...全文
191 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
functionsub 2013-04-11
  • 打赏
  • 举报
回复
document.addEventListener("DOMContentLoaded",clearAd(),false); 你的方法只会在页面加载完成后去删除。我不知道你拖到chrome://extensions/里,他会把JS在什么时候加载进去,所以不太好说。 反正你想快的话,就把调用clearAd的JS代码放在body结束符之前直接clearAd()
sohighthesky 2013-04-11
  • 打赏
  • 举报
回复
别的不说,先把clearAd 后面的括号去掉吧,加括号表示调用方法,如果直接调用了,就不需要addEventListener...了
  • 打赏
  • 举报
回复
除了先天的JQ入口执行顺序问题之外,这代码本身就编写得非常没有效率,直接通过CLASS和ID选择符去得到应该处理的目标就行了,何必要先得到所有DIV再遍历比较CLASS和ID呢?无论是代码执行效率还是内存分配导致的性能效率都明显要影响程序执行速度。 另外,这种功能建议用STYLISH去做,更加简便。

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧