uBlock - 隐藏包含给定单词文本的任何元素?

19 ublock ublock-origin

是否可以编写自定义过滤规则,使任何divspanp当有文本部分,即一个特定的词其子被隐藏Trump

例如,我有这个结构

<div>
  <a class="..." href="...">Donald Trump said blablabla.</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我试过这个,但没有效果:

##div>a:has-text(Trump)
Run Code Online (Sandbox Code Playgroud)

小智 22

尝试 ##div>a:has-text(/Trump/)

  • 为什么?你能给出解释吗? (7认同)
  • 这是提议的 CSS4 语法,许多广告拦截器已经实现了它。例如,uBlock Origin 就有。 (4认同)
  • 为我工作。我去掉了 YouTube 视频上的“不感兴趣”选项。偶尔,当点击视频(`...`)上的汉堡菜单时,我会不小心点击标有“不感兴趣”的第一个选项。我通常进入菜单只添加到我的“稍后观看”播放列表。可悲的是,撤​​消“不感兴趣”的唯一方法是完全清除您提交的所有“不感兴趣”......当我试图为我定制 YouTube 建议时,这非常令人沮丧。这是我使用的:`www.youtube.com##.ytd-menu-service-item-renderer:has-text(不感兴趣)` (2认同)

小智 5

:has-text()是一个程序化妆过滤器。那些“必须始终是特定的,即以它们要应用的站点的主机名作为前缀。”

程序修饰过滤器功能强大,但应尽可能避免,因为它们会减慢站点加载速度(必须插入 JavaScript 并访问大量节点)。

如果你仍然想要它,它应该是这样的:

example.com,domain.com,anotherexample.com##div>a:has-text(Trump)
Run Code Online (Sandbox Code Playgroud)

可以更改该行为,以便像这样的非特定程序化妆品过滤器##div>a:has-text(Trump)可以工作,但绝对不推荐这样做。它会减慢您在每个页面上的浏览器速度,并且外部过滤器列表中的错误可能会自由转动并产生大量误报/过度阻塞。

你可以找到这个选项埋在

  1. uBO 仪表盘
  2. 设置
  3. 勾选“我是高级用户”
  4. 阅读并理解警告
  5. 点击齿轮
  6. 将“allowGenericProceduralFilters”更改为 true
  7. 点击“应用更改”

喜欢斜杠:PS:has-text(/Target words/)没有必要的。如果你使用它们,里面的表达式将被评估为RegEx,这将导致更多的工作量。