当人们评论YouTube视频他们正在观看2018年的视频或现在的任何一年时,或者问其他人也这样做时,我觉得非常恼火。这样的评论通常得到很多喜欢,因此保持在顶部附近。所以我开始制作一个删除所有这些评论的脚本。我制作了必要的代码并使用Chrome控制台成功进行了测试。
问题是,我不知道如何使其保持运行/活动,因此无论何时加载新评论或刷新页面,此类评论都会自动过滤掉。我使用了 window.setTimeout ,但它只在已加载注释时运行。不适用于新加载的评论。
感谢任何帮助。以下是我的剧本:
// ==UserScript==
// @name YouTube Comment Cleaner
// @namespace iamMG
// @include *://www.youtube.com/*
// @description Remove keywords from YouTube comments.
// @author iamMG
// @license MIT
// @version 1.0
// ==/UserScript==
//Some code to detect when the element with id 'watch-discussion' becomes available.
//It is the parent element which contains all the comments.
window.setTimeout(function() {
var expr = /20(15|16|17|18|19|20)/; //The text I want to detect in comments
var commentText = document.getElementsByClassName('comment-renderer-text-content'); //The text element within each comment
for (var i =0; i<commentText.length; i++) {
if (expr.test(commentText[i].innerText)) { //tests for the substring inside the comment text.
var elem = commentText[i].parentNode.parentNode.parentNode.parentNode; //elem is the actual comment element.
console.log('removed '+ (i+1) + 'th comment');
elem.parentNode.removeChild(elem);
i--;
}
}
}, 4000)
答案 0 :(得分:0)
最好将其作为扩展名编写。您可以使用chrome.alarms来安排代码。如果使用websockets添加新注释,还要检测DOM更改以确定是否添加了新注释。