
Я использую блокировщик рекламы uBlock на Firefox. Изначально у меня стоят бесплатные фильтры, такие как:
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
Я предположил, что все следующие страницы будут иметь похожие идентификаторы. Поэтому я хочу создать общий фильтр, чтобы он мог отфильтровывать рекламу со всех следующих страниц, что-то вроде этого:
search.yahoo.com###yui_3_10_0_1_153*
Но я не могу понять,uBlock'sдокументация что такоесинтаксисдля этой задачи.
Как создать фильтр для uBlock?
решение1
Вам придется посмотреть наCSS-селектордокументация. uBlock добавляет несколько собственных расширений («процедурные» селекторы), но по-прежнему имеет тот же общий синтаксис и функции, что и CSS.
В вашем примере ##
— это разделитель, а #yui_3_10_0_1_1532027806134_88
— селектор CSS — префикс означает, что он соответствует атрибуту #
элемента (id=
Селектор идентификатора).
Селекторы идентификаторов всегда точно соответствуют, но они являются просто сокращением для genericселекторы атрибутов– предыдущее идентично [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 — этовременная метка– в частности, «временная метка Unix» в микросекундах. Она достигнет 1540000000000 20 октября этого года (и 1600000000000 в сентябре 2020 года, если Yahoo к тому времени еще будет существовать), поэтому вам следует соответствующим образом настроить фильтр uBlock.