Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Система против Adlbock. Как реализовать?

Система против Adlbock. Как реализовать?


     12.01.2016    Общие вопросы, Ламерские вопросы    2082

вопрос
Здравствуйте!
Я сам пользователь расширенных таких как Adblock, и ничего против него не имею. Но как владельцу сайта который выживает только за счет рекламы это как проблематично=))
Видел на некоторых сайтах как бы просил или же что то подобное если у тебя включен адблок пишется то что бы убрали=) на пример на этом сайте

Как можно такое реализовать?

Через Firebug понял что это java и прописывается между




вот сам script.js

var ads = "banner-adv"
var msg = '<div style="border: 1px dashed #f00; padding: 5px;"><b>Adblock Detected</b></div>';

onload=function(){
    // заглушка для IE, т.к. нет функции getElementByClassName
    if (document.getElementsByClassName == undefined) {
        document.getElementsByClassName = function(className)
        {
            var hasClassName = new RegExp("(?:^|\s)" + className + "(?:$|\s)");
            var allElements = document.getElementsByTagName("*");
            var results = [];

            var element;
            for (var i = 0; (element = allElements[i]) != null; i++) {
                var elementClass = element.className;
                if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
                    results.push(element);
            }
            return results;
        }
    }

    blocked = 0;
    //получаем массив всех рекламных элементов
    var ad_nodes = document.getElementsByClassName(ads);
    for(i in ad_nodes){
        // проверяем высоту i-го блока
        if (ad_nodes[i].offsetHeight == 0){
            blocked = 1;
            ad_nodes[i].innerHTML = msg; // выводим сообщение на экран
        }
    }
    if(blocked == 1)
    {
        setTimeout(function() {
            $("body").html("");
            $("body").css("background","#FFFFFF url('/img/error404.jpg') no-repeat 50% 0%");
            $("body").css("width","width: 100%");
            $("body").css("height","width: 100%");
            $("body").css("overflow","hidden");
            }, 500)

    }
}


добавлял себе на сайт (ссылки на картинку и сам скрипт менял на свои) ничего не получилось!

Ответа пока нет


2 комментария

nowheremany
Эксперт

nowheremany - 12 января 2016 09:18 -

Вроде можно сделать проще - типа

<script>windows.adblock=true;</script>
<script src=".../banner.js"></script>
<script>alert(windows.adblock)</script>

в файле banner.js прописываем
windows.adblock=false;


а дальше уже типа скрипт
    if(windows.adblock)
    {
        setTimeout(function() {
            $("body").html("");
            $("body").css("background","#FFFFFF url('/img/error404.jpg') no-repeat 50% 0%");
            $("body").css("width","width: 100%");
            $("body").css("height","width: 100%");
            $("body").css("overflow","hidden");
            }, 500)

    }

Благодарность принимаю тут Связь

Апельсин
Юзер

Апельсин - 12 января 2016 20:25 -

Создал js файл advert.js с таким содержимым

window.ab = false;


Подключаем его к шаблону

<script type="text/javascript" src="{THEME}/js/advert.js"></script>


Вставляем этот скрипт туда, где должно выводиться предупреждение

<script>
        if (!('ab' in window)) { window.ab = true; }
        var result = document.getElementById('result');
        if (window.ab == true) {
            result.innerHTML = 'Эх, как жаль, что вы используете блокировщик рекламы.';
        } else {
            result.innerHTML = 'Благодарим, что не используете блокировщик рекламы.';
        }
    </script>


ТУТ можно посмотреть в работе. Оформить можно под себя, как угодно.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх