是否可以编写自定义过滤规则,以便当文本部分中出现特定单词时,任何div
、span
或及其子项都会被隐藏,即?p
Trump
例如,我有这个结构
<div>
<a class="..." href="...">Donald Trump said blablabla.</a>
</div>
我尝试了这个,但是没有效果:
##div>a:has-text(Trump)
答案1
尝试##div>a:has-text(/Trump/)
答案2
:has-text()
是程序化美容滤镜。这些“必须始终是具体的,即以它们要应用的站点的主机名作为前缀。”
程序化美容过滤器功能强大,但如果可能的话应避免使用,因为它们会减慢网站的加载速度(必须插入 JavaScript 并访问许多节点)。
如果你仍然想要它,它应该看起来像这样:
example.com,domain.com,anotherexample.com##div>a:has-text(Trump)
你可以改变这种行为因此,非特定的程序化美容滤镜##div>a:has-text(Trump)
可以发挥作用,但绝对不推荐。它会减慢您浏览器的每一页速度,并且外部过滤列表中的错误可能会自由转动并产生大量误报/过度阻止。
您可以在以下位置找到该选项
- uBO 仪表板
- 设置
- 勾选“我是高级用户”
- 阅读并理解警告
- 点击齿轮
- 将“allowGenericProceduralFilters”更改为
true
- 点击“应用更改”
ps: 正斜杠就像:has-text(/Target words/)
是不是需要。如果你使用它们,里面的表达式将被评估为正则表达式这将造成更大的工作量。
答案3
似乎has-text
选择器仅在指定顶级域名时才有效。例如,以下内容有效,但仅限于《卫报》网站:
theguardian.com##.fc-item__container:has-text(Trump)