uBlock 规则不适用

问题描述

uBlock 阻止了来自某个网​​站的广告,但它留下了大的(高度)div,它在加载后扩展了网站并将主要文本向下推。使用“块是元素”给了我

###js-ad-container-XYZ

XYZ 是一个随机字符串作为选择器并使用此建议,div 被删除,但在转到该站点上的另一篇文章后再次出现。

为了通配随机数,我发现 this blog post 建议使用 www.annoyingwebsite.com##div[id^="start_of_div_name_before__randomnumber"],因此我尝试将规则更改为

that-site.com##div[id^="js-ad-container"]

但这似乎不起作用,因为过滤器编辑器在行中显示错误,并且巨大的 div 仍在网站上单击过滤器编辑器中的预览。我也尝试在 div 之前使用三个 ### 但这也没有帮助。我想这是一件应该可行的简单事情,所以我希望我做错了...

编辑:我检查了检查员,该元素实际上是一个带有 id 的 div,因为它在使用上下文菜单中的“块元素”时出现在编辑器中。

解决方法

#js-ad-container-XYZ 表示您要阻止 ID 为 js-ad-container-XYZ 的元素。在您第二次尝试时,您说只阻止具有该 ID 的 div 节点。这将做同样的事情,更糟糕的情况是它不会匹配任何节点。我发现您通常需要将块扩展到任意数量的父节点,直到您阻止相关容器。为此,您使用 nth-ancestor():

that-site.com##div[id^="js-ad-container"]:nth-ancestor(1)