2012-02-07 6 views
3

У меня есть страница, которая выполняет много переадресаций внутри фрейма, где мишенями являются в основном партнерской сети страниц (которые выполняют переадресацию в магазинах и так далее), разметка выглядит что-то вроде:Adblock блокирует переадресацию iframe - как определить?

http://jsfiddle.net/HPDNC/2/

Как вам можно увидеть, если включен блокировщик объявлений, iframe не загружается. Мне нужно как-то обнаружить, что я могу эфир сделать прямую переадресацию или хотя бы информировать пользователя о ситуации.

Обычным способом было бы просто проверить объявление или что бы не обнаружить, активен ли рекламный блок. К сожалению, нет настоящих объявлений на этой странице, чтобы проверить.

ответ

2

Вы можете определить, посещен ли ваш сайт с помощью Ad-Blockers. В <head> тега, - или где-нибудь на самом деле - поставить это:

<script type="text/javascript"> 
window.ADS_BLOCKED = true; 
</script> 
<script type="text/javascript" src="/advertise/detect.js"></script> 
<script type="text/javascript"> 
if (window.ADS_BLOCKED) 
    alert('You blocked me...'); 
</script> 

Прилагаемый Javascript detect.js бы установить window.ADS_BLOCKED в false. Ad-Blockers предотвратили бы загрузку этого файла из-за его имени файла («реклама»).

+1

Вы полагаетесь на рекламный блок, работающий на очень грубой шкале. Некоторые системы (например, Peerblock) имеют списки известных рекламных сайтов и блокируют сайты напрямую. Другие системы работают с именами элементов. Вы не можете гарантировать, что каждая система будет работать таким образом. Некоторые будут, но не все. –

+0

что-то вроде этого уже пришло мне в голову, но по причинам @ dawmail333 упомянул, что это будет мое последнее средство – Hannes

0

Дайте iframe id, тогда вы можете проверить наличие iframe с помощью javascript.

Вот пример:

<script type="text/javascript"> 

if(document.getElementById("ad") == null) { 
    alert("The ad has been removed!"); 
} 
else 
{ 
    alert("It's alright, it's still here."); 
} 

</script> 

EDIT: Просто ошибка исправлена.

Что это такое, дает Javascript средство доступа к вашему объявлению. Код Javascript, который появляется после (if(document.getElementById("ad") == null)), просто проверяет, существует ли элемент - если это не так, это означает, что рекламный блок удалил его.

Некоторые рекламные блоки (например, более ранние версии AdBlock для Chrome) просто скрывают элемент, а не удаляют его - я оставлю это как упражнение для вас, потому что я только что проверял CSS на элементах DOM через JQuery.

EDIT 2:

Используя этот ответ here, вы могли бы просто проверить, если HTML в IFRAME загружен правильно, и отреагирует на его основе.

+0

addblock не уничтожает iframe - но просто останавливает запрос внутри iframe, поэтому он будет существовать как элемент внутри родительского document whats so ever – Hannes

+0

Хорошо, я посмотрю, смогу ли я найти решение для этого позже. –

+0

@Hannes Я обновил ответ, посмотрим, подходит ли он. –

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