我在 Firefox 上使用 uBlock 广告拦截器。最初我有免费的过滤器,例如:
search.yahoo.com###yui_3_10_0_1_1531993940314_95
search.yahoo.com###yui_3_10_0_1_1532027806134_88
search.yahoo.com###yui_3_10_0_1_1532084576415_87
我假设所有后续页面都会有类似的 ID。所以我想创建一个通用过滤器,以便它可以过滤掉每个后续页面中的广告,如下所示:
search.yahoo.com###yui_3_10_0_1_153*
如何为 uBlock 创建过滤器?
答案1
你必须看看CSS 选择器文档。uBlock 添加了一些自己的扩展(“程序”选择器),但仍然具有与 CSS 相同的一般语法和特性。
在您的示例中,##
是分隔符,#yui_3_10_0_1_1532027806134_88
是 CSS 选择器 -#
前缀表示它与元素的id=
属性匹配(ID 选择器)。
ID 选择器始终精确匹配,但它们只是通用的简写属性选择器– 前一个与 相同[id=yui_3_10_0_1_1532027806134_88]
。
属性选择器做^=
分别使用、$=
和支持前缀、后缀和子字符串匹配*=
。因此,您要求的选择器是[id^=yui_3_10_0_1_153]
:
search.yahoo.com##[id^=yui_3_10_0_1_153]
请注意,YUI 自动生成的 ID 中的大数字是时间戳– 具体来说,就是以微秒为单位的“Unix 时间戳”。今年 10 月 20 日,它将达到 1540000000000(如果到那时雅虎还存在的话,到 2020 年 9 月将达到 1600000000000),因此您应该相应地调整 uBlock 过滤器。