gpt4 book ai didi

javascript - 隐藏某些用户的评论?

转载 作者:行者123 更新时间:2023-11-27 23:23:35 24 4
gpt4 key购买 nike

我正在使用 Chrome 扩展 Web Override对于一些事情来说它效果很好。现在我正在尝试隐藏 Stack Overflow 上某些用户的评论,但似乎不起作用。我认为这就是评论加载的方式。

这是 JavaScript:

$(function() {
$('.comment-user:contains("DevilsAdvocate")').closest('.comment').hide();
});

如果我简单地将 $('.comment-user:contains("DevilsAdvocate")').closest('.comment').hide(); 粘贴到控制台中,它将隐藏我的评论,但当我正常加载页面时它不会这样做。

最佳答案

一种可能的解决方案是使用 MutationObserver() .

这将允许您监听评论部分的任何更改并做出相应的 react 。下面可以看到一个粗略的实现。您创建观察者并为其提供隐藏功能,以便每次发生突变时它都会隐藏所有相关注释。

然后你告诉你的观察者观看帖子的评论部分。我确信您可以编写一种更加jquery 的方式来执行此操作。现在它只关心它找到的第一个 .comments 部分。这将监听任何子级更改、属性更改和子树更改。

var observer = new MutationObserver(function (mutations) {
$('.comment-user:contains("DevilsAdvocate")').closest('.comment').hide();
});

observer.observe(document.querySelectorAll(".comments")[0], {
attributes: true,
childList: true,
characterData: true,
subtree: true
});

我不知道这会对性能产生影响,并且 jQuery 可能有自己的方式来观察 DOM 变化。一个更好的方法是使用评论 JavaScript 代码进行面向方面的编程,以便您可以在发布新评论后立即调用您的隐藏器,甚至可以在那里过滤评论。

或者,据我所知不受支持,监听 Stack Exchange API 可能发出的事件,让您知道何时加载新评论。

随之而来的问题是,我不相信 Stack Exchange 客户端 JavaScript 是任何公共(public) API 的一部分,因此对其进行任何更改都可能会破坏您的代码。

关于javascript - 隐藏某些用户的评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35165331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com