Всё больше и больше веб-мастера задаются вопросом, как же обойти блокировку баннера и вывести из строя расширение AdBlock Plus и Adguard?
Оказывается, осуществить обход блокировки баннеров можно при помощи JavaScript и HTML, используя альтернативные теги, например, DIV.
Итак, что же нам потребуется?
- Базовые знания JavaScript;
- Базовые знания HTML.
Приступим
Давайте рассмотрим следующий JavaScript код (код полностью рабочий):
/**
@name: Banner Creater
@versoin: v. 0.1
@author: Mr.MEX
@site: hyperworld.ru
*/
function bannerCreater(opt){
opt = opt || {};
var h = opt.h,
w = opt.w,
link = opt.link,
img = opt.img,
title = opt.title,
target = opt.target,
attach = opt.attach,
create = true,
div = document.createElement('div'),
result = '',
words = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM',
max_position = words.length - 1
;
for(i = 0; i < 10; ++i) {
position = Math.floor (Math.random() * max_position);
result = result + words.substring(position, position + 1);
}
var idgen = result;
if (h == null) {
h = 60;
} else if (w == null) {
w = 468;
} else if (link == null) {
alert('Не указана ссылка, баннер не будет создан.');
create = false;
} else if (img == null) {
alert('Не указана ссылка на изображение, баннер не будет создан.');
create = false;
} else if (title == null) {
} else if (target == null) {
target = '_blank';
} else if (attach == null) {
alert('Не указан id элемента, в который будет встроен баннер, баннер не будет создан.');
create = false;
}
if (create == true) {
div.setAttribute('id',idgen);
div.setAttribute('style','width:'+w+'px !important;height:'+h+'px !important;background-image:url(''+img+'') !important;background-repeat:repeat repeat !important;background-position:center center !important;cursor:pointer !important;');
if (title) {
div.setAttribute('title',title);
}
div.setAttribute('onclick', 'window.open(''+link+'', ''+target+'')',0);
document.getElementById(attach).appendChild(div);
}
}
Вроде всё просто, не правда ли?
Давайте сделаем пример.
JavaScript:
function createBanner(){
bannerCreater({
attach: 'bannerContainer', // ID элемента, в который будет встроен баннер (обязательный параметр)
w: 468, // Ширина баннера (если не указать параметр, то будет по умолчанию 468 пикселей)
h: 60, // Высота баннера (если не указать параметр, то будет по умолчанию 468 пикселей)
link: 'http://mysite.ru/', // Ссылка на сайт (обязательный параметр)
img: 'http://mysite.ru/banner468x60px.png', //Ссылка на изображение (обязательный параметр)
title: 'Ролевой Каталог CoffeeBreak', // Тайтл (необязательный параметр)
target: '_blank' // Думаю понятно, откроет ссылку на сайт в новом окне (необязательный параметр)
});
}
HTML:
<div id="bannerContainer"></div>
<script>createBanner();</script>
Вот пример:
Как видно, ни Adguard, ни AdBlock Plus баннер не заблокировали.
Выводим из строя Adguard и AdBlock Plus в браузерах Webkit (Yandex, Amigo), Blink (Google Chrome, Opera)
Встраиваем в страницу JavaScript код (можно создать js и приаттачить в шапку страницы):
/**
@name: Anti-AdBlock for Webkit Browsers
@version: 0.2 dev. 3
@author: Mr.MEX
@site: hyperworld.ru
*/
function antiadblock(){
var var1 = $('iframe[style="visibility: visible; position: fixed !important; display: block !important; border: 0px !important; -webkit-box-shadow: rgba(0, 0, 0, 0.498039) 5px 5px 20px; z-index: 2147483647; left: 50px; top: 50px; width: 416px; height: 195px; opacity: 0.7;"]'),
var2 = $('iframe[style="visibility: visible; position: fixed !important; display: block !important; border: 0px !important; -webkit-box-shadow: rgba(0, 0, 0, 0.498039) 5px 5px 20px; z-index: 2147483647; left: 50px; top: 50px; width: 416px; height: 195px;"]'),
var3 = $('iframe[id="adguard-assistant-dialog"]'),
var4 = $('iframe[class="sg_ignore adg-view-important"]'),
div = $('div[class="__adblockplus__overlay"]'),
div2 = $('div[class="sg_border"]'),
div3 = $('div[class="sg_border sg_bottom_border"]')
;
if (var1) {
var1.remove();
}
if (var2) {
var2.remove();
}
if (var3) {
var3.remove();
}
if (var4) {
var4.remove();
}
if (div) {
div.remove();
}
if (div2) {
div2.remove();
}
if (div3) {
div3.remove();
}
setTimeout(function(){antiadblock();},250);
}
console.info('Скрипт Anti-AdBlock сейчас будет запущен...');
antiadblock();
console.info('Скрипт Anti-AdBlock работает.');
И что же этот скрипт делает?
А делает он кое что прекрасное, а именно, удаляет все теги, которые были встроены расширениями Adguard и Adblock Plus.
Когда начинает работать данный скрипт?
Работать он начинает тогда, когда пользователь решит заблокировать баннер вручную, но у него это не выйдет. При попытке блокировки расширение попросту «вешается».
Заключение
Нет ничего проще, чем взять обмануть да ещё и поломать расширения блокировки рекламы.
Знаю, что есть множество других решений, но я решил сделать что-то своё.
Всем удачи!