Adblock Plus - 白名单规则

Adblock Plus - whitelisting rule

我在页面上有一个看起来像这样的元素:

<a data-mytype="myvalue" href="http://example.com/promo/page">...</a>

此元素被以下 ABP 规则隐藏(出现在我使用的过滤器订阅之一中):

##[href*="/promo"]

如何编写白名单规则,根据特定的 attribute/value 对(例如 data-mytype="myvalue" 对)排除该元素被 Adblock Plus 隐藏?

我查看了 Writing Adblock Plus filters and Adblock Plus filters explained 页面,但我还没有弄清楚如何(成功地)编写基于指定属性的过滤器。

两个页面都提到标准 CSS 选择器应该可以工作,但这似乎不起作用:

@@a[data-mytype="myvalue"]

我也试过以下方法:

#@#[href*="/promo"][data-mytype="myvalue"]

我错过了什么?

注意:我不想要一个只会取消 ##[href*="/promo"] 的规则,我正在寻找一个将仅基于特定 attribute/value 对的元素列入白名单的规则。

编辑 (2016-03-17): 稍微澄清了我的问题。

规则 ###yourdiv 可以被 #@##yourdiv 禁用(##.yourclass#@#.yourclass 禁用)

你的情况:#@#[data-mytype="myvalue"]

您首先禁用现有规则:

#@#[href*="/promo"]

请注意,选择器必须相同,否则元素隐藏例外将不适用。然后您可以添加自己的规则,该规则将考虑 data-mytype 属性:

##[href*="/promo"]:not([data-mytype="myvalue"])

这两个规则的组合应该有你想要的效果。供参考::not() CSS pseudo-class