2016-01-27 5 views
0

У меня есть элемент, который выглядит, как это на странице:Adblock Plus - белый список правила

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

Этот элемент получает скрыт по следующему правилу ABP (присутствует в одном из подписок фильтров я использую):

Как написать правило «белого списка», которое исключает возможность скрытия этого элемента Adblock Plus на основе определенной пары атрибут/значение - например, data-mytype="myvalue"?

Я проверил страницы Writing Adblock Plus filters и Adblock Plus filters explained, но я не понял, как (успешно) написать фильтр на основе указанного атрибута.

Обе страницы отметить, что стандартные CSS селекторы должны работать, однако это не похоже на работу:

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

Я также попытался следующие:

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

Что мне не хватает?

Примечание: я не хочу, чтобы правило, которое просто отменяет ##[href*="/promo"], я ищу правило, которое будет использовать элементы белого списка только на основе определенной пары атрибут/значение.

Редактировать (2016-03-17): Уточненный мой вопрос немного.

ответ

1

Вы сначала отключить существующее правило:

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

Обратите внимание, что селектор должен быть идентичными, иначе исключения, скрывающие элементы, не будут применяться. После этого вы можете добавить свое собственное правило, тот, который будет рассматривать атрибут data-mytype:

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

Сочетание этих двух правил должны иметь эффект, который вы хотите. Для справки: :not() CSS pseudo-class

+0

Итак, ABP не содержит элементы белого списка, которые не включены в черный список без явного исключения правила черного списка? Я думал, что белый список был выделен приоритетом для блакла. В принципе, ABP сделает список элементов скрытым на основе правил черного списка, а затем удалит из этого списка любые элементы, которые соответствуют правилам «белый список», и все это до фактического скрытия указанных элементов. –

+0

@SilviuG: Исключительные исключения элементов не применяются к элементам, они применяются к правилам сокрытия элементов. Таким образом, селекторная часть правила должна быть идентичной, иначе она не будет работать.Это имеет технические причины, обнаруживая, что несколько правил, соответствующих одному и тому же элементу, и решение о том, какое из них должно быть применено, невозможно. –

+0

Благодарим вас за разъяснения по техническим причинам. Это не тот ответ, на который я надеялся, но по крайней мере сейчас у меня есть что-то твердое, с чем можно было бы работать. –

0

Правило ###yourdiv можно отключить #@##yourdiv (##.yourclass по #@#.yourclass)

В вашем случае: #@#[data-mytype="myvalue"]

+0

Я немного уточнил свой вопрос, пожалуйста, пересмотреть его. –

+0

Как насчет '@@ || example.com^$ elemhide' или' @@ || example.com^$ generichide' , если нет, то, что вы ищете, приведу пример со ссылками, уже спрятанными Adblock Plus + Easylist , – SMed79

+0

На тестовой странице есть примеры ссылок. Кроме того, я не могу включить example.com в мое правило, мне нужно общее правило, которое будет работать в любом домене. –

Смежные вопросы