我读过的博客有一些烦人的评论。我想我会尝试在 Greasemonkey 上关闭它们。
HTML 的基本结构很简单——注释看起来像这样:
<li>
<cite>user name ...</cite>
comment text
</li>
所以考虑到这一点,我把头撞在键盘上一会儿,直到它退出:
var killlist = /user1|user2/;
var comments = document.getElementsByTagName('li');
if (comments.length) {
for ( var i = 0; i < comments.length; i ++ ) {
var comment = comments[i];
var cites = comment.getElementsByTagName('cite');
if (cites.length) {
var cite = cites[0];
var title = cite.textContent;
if (killlist.test(title)) {
comment.parentNode.removeChild(comment);
}
}
}
}
window.alert('Done!')
(window.alert
只是让我知道脚本是否运行完成)
这主要是有效的。例如,在一个测试页面上,它删除了其中一位用户的 16 个帖子中的 13 个。我尝试用这个替换 removeChild 行:
comment.style.visibility = 'hidden';
这似乎得到了一切,但代价是在评论所在的地方留下了巨大的空白。
我是一个完整的 javascript 新手,所以有人能看出我做错了什么吗?