Я использую блокировщик рекламы 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, что такое синтаксис для этой задачи.

Как создать фильтр для uBlock?

1 ответ1

2

Вам нужно будет посмотреть документацию по селектору CSS . uBlock добавляет несколько собственных расширений ("процедурных" селекторов), но по-прежнему имеет тот же общий синтаксис и функции, что и CSS.

В вашем примере ## - это разделитель, а #yui_3_10_0_1_1532027806134_88 - это селектор CSS - префикс # означает, что он соответствует атрибуту 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 представляет собой метку времени, в частности, метку времени Unix в микросекундах. Он достигнет 1540000000000 20 октября этого года (и 1600000000000 в сентябре 2020 года, если Yahoo все еще будет к этому времени), поэтому вы должны соответствующим образом настроить фильтр uBlock.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .