Проблемы с обнаружением Adblock - PullRequest
0 голосов
/ 14 января 2012

Я работаю над базовым сценарием обнаружения Adblock, и у меня есть кое-что, что похоже на должно работать.После создания элемента на странице с идентификатором #adblock_detection_image в Chrome с Adblock Plus, выполнение $('#adblock_detection_image').css('display') дает мне значение none, а выполнение $('#adblock_detection_image').css('visibility') дает мне значение hidden.Когда я запускаю их в браузере без Adblocker, я получаю inline и visible вместо этого, как и следовало ожидать.

Найдя это, я пошел дальше и попытался найти решение.Однако проблема заключается в том, что код, который должен срабатывать при простом обнаружении блокировщика рекламы, не срабатывает.Фрагмент кода показан ниже.

function isUsingAdblocker(classOfAd)
{
    if(parseInt($(classOfAd).css('height')) <= 0)
{
            return true;
}
    else
{
            $('body').append('<img id="adblock_detection_image" src="/textlink-ads-banner-advert-service.jpg" style="width: 0; height: 10px;  position: relative; top: -1000px; left: -1000px;"/>');
    if($('#adblock_detection_image').css('display') != 'inline')
    {
        return true;
    }
    else if($('#adblock_detection_image').css('visibility') != 'visible')
    {
        return true;
    }
    else
    {
        return false;
    }
}
}
$(document).ready(function(){
    if(isUsingAdblocker('#Ad-One')){
        $('#Ad-One').html('<em>Please</em> disable your ad-blocking software to help support this website.<br/><span>(It\'s our primary source of income!)');
        $('#Ad-One').css('height', '90px');
    }
});

Ответы [ 2 ]

0 голосов
/ 14 января 2012

Adblock ищет элементы, которые содержат слова, такие как ad или немецкий "werbung" или другие слова, которые часто используются для рекламы. Вы должны дать своим элементам другое имя, которое не содержит этих слов. У меня была такая же проблема на моем первом веб-сайте, где я назвал div "left_ad".

0 голосов
/ 14 января 2012

возможно, блокировщик рекламы удалил элемент, содержащий рекламу, там "# Ad-one", поэтому, когда вы получаете доступ к CSS этого элемента с помощью jq, в действительности вы получаете доступ к недоступному элементу, который был ранее удален из источника html.не правда ли?

...