Adblock блокирует перенаправления iframe - как обнаружить?
У меня есть страница, которая выполняет много переадресаций внутри iframe, где целями являются в основном страницы партнерской сети (которые выполняют перенаправления в магазины и т. Д.), Разметка выглядит примерно так:
Как видите, если у вас включен блокировщик рекламы, iframe не загружается. Мне нужно как-то обнаружить это, чтобы я мог сделать прямое перенаправление или хотя бы проинформировать пользователя о ситуации.
Обычным способом было бы просто проверить объявление или что не обнаружить, если блокировщик рекламы активен. К сожалению, на этой странице нет реальных объявлений для проверки.
2 ответа
Вы можете определить, посещается ли ваш сайт с помощью блокировщиков рекламы. в <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
, Блокировщики рекламы будут препятствовать загрузке этого файла из-за его имени файла ("реклама").
Присвойте 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>
РЕДАКТИРОВАТЬ: только что исправил ошибку.
Это дает Javascript возможность доступа к вашему рекламному элементу. Код Javascript, который следует после (if(document.getElementById("ad") == null)
) просто проверяет, существует ли элемент - если он не существует, это означает, что рекламодатель удалил его.
Некоторые рекламные блокировщики (например, более ранние версии AdBlock for Chrome) просто скрывают элемент, а не удаляют его - я оставлю это как упражнение для вас, потому что я когда-либо проверял CSS на элементах DOM только через JQuery.
РЕДАКТИРОВАТЬ 2:
Используя этот ответ здесь, вы можете просто проверить, правильно ли загружен HTML-код в iframe, и ответить на основании этого.