2009-03-02 2 views
2

У меня есть сценарий Greasemonkey, который пытается получить доступ к элементу HTML, который отключен Adblock. Возможно ли создать обходной путь с помощью сценария Greasemonkey для предотвращения конфликтов с плагином Adblock?Может ли сценарий Greasemonkey переопределять фильтры AdBlock?

Я открыт для любых идей, однако изменение сценария во избежание использования элемента Adblock в настоящее время не является решением.

Дополнительная информация

addblock элемент Я пытаюсь «включить» является таблица элементов из результатов поиска Google.

<table id="mbEnd" width="30%" style="margin-bottom: 1em;"> 

Adblock фильтр скрывает элемент является:

google.com,google.com.au,google.co.uk,google.ca,google.se#table(id=mbEnd)(width=30%) 

Update: Некоторые предполагают, что я просто отключить фильтр AdBlock для страницы я работаю. Я также считаю это не решением, так как любой, кто использует мой скрипт, должен будет выполнить одно и то же действие, и я не могу ожидать, что все мои пользователи вручную изменят свои настройки Adblock.

+0

вы можете отключить рекламный блок для этого веб-сайта/элемента – Malfist

+0

В чем специфика элемента, к которому вы пытаетесь получить доступ, и каких свойств вы пытаетесь получить от него? –

ответ

1

Вы можете отключить рекламный блок для определенных страниц или доменов. Просто нажмите стрелку рядом с символом, и это даст вам больше возможностей для отключения adblock.

Невозможно сделать скрипт Greasemonkey автоматически переопределяющим Adblock, поскольку Adblock влияет на страницу до того, как будут загружены сценарии Greasemonkey.

+0

Я думаю, что интересным моментом является то, как Adblock влияет на страницу. Он НЕ анализирует элемент HTML из документа, но я понимаю, что он применяет таблицу стилей CSS пользователя к документу, который скрывает элемент HTML. См. Http://adblockplus.org/en/faq_internal#elemhide – cmcginty

+0

ABP удаляет столько контента, сколько может обнаружить как ссылку для рекламы, и только переходит к скрытию элементов, если это неизбежно (http://adblockplus.org/en/фильтры # elemhide_basic). Если единственной проблемой было скрытие элементов, вы могли бы получить доступ к элементу DOM, поскольку CSS не скрывает его от JavaScript. –

+0

Таким образом, я придерживаюсь своего первоначального ответа, который означает, что Greasemonkey проиграет ABP. Если элемент заблокирован ABP, каким образом какой-либо JavaScript когда-либо должен был на него зависеть? –

0

С какими элементами вы пытаетесь перейти? Большинство элементов страницы должны быть доступны, только с помощью «display: none;».

Я использую jQuery в сценариях Greasemonkey, и он может получить текст alt из изображения после того, как я отключил его с помощью ABP.

$('#s1 + img')[0].alt 
=> Rohm and Haas Paint Quality Institute 

Если вы предоставите более конкретную информацию, я могу предоставить более конкретное решение.

Доступ к заблокированным iframes может быть более сложным, но выполнимым. Опять же, более конкретные детали помогут мне ответить.

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