如何在不更改或刷新URL的情况下检测adblock

时间:2018-10-29 16:43:31

标签: ajax adblock

我正在使用“ adframe”库检测adblock,并且效果很好。

但是,我在通过AJAX加载内容的网页中遇到问题。

如果访问者在启用了adblock的情况下进入此页面,则库将检测到该页面,并且不显示内容,但是如果用户在禁用adblock的情况下进入此页面,则将显示内容并通过AJAX加载ALL FUTURE内容无论用户是否在此页面上启用adblock,都会显示该消息,这是我的问题。

我正在尝试在执行AJAX函数时检测同一URL中的adblock。

Bellow是功能之一...是否可以检测两者之间的adblock?

function action1(time,id_object)
{
    if(time != -1){
        $("#time_object").html(time);
        time2 = time - 1;
        id_object2 = id_object;
        count = setTimeout('action1(time2,id_object2);', 1000);
    }
    else
    {
        if(id_object != 0)
        {
             clearTimeout(count);
            $('#feedback').modal('show');
            $.ajax({
                async:true,
                dataType: "html",
                type: "POST",
                data: {id_object: id_object},
                contentType: "application/x-www-form-urlencoded",
                url: "site/show_object.php",
                beforeSend:function(){
                    $('#feedback').html(loading);

                },
                success:function(data){
                    $('#feedback').html(data);
                    count = setTimeout('webpage3()',60000); 
                },
                timeout:20000, 
                error:function(){
                location.href= 'webpage4';
                }
            }); 
            return 0;
        }
        else
        {
            next();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

添加以下代码段并检查控制台中的消息

HTML

<div id="addBlockerDiv">
    <div class="adBanner" style="background-color: transparent;height:1px;width:1px;">
       &nbsp;&nbsp;&nbsp;
    </div>
</div>

JS

window.onload = function(){
     if(document.getElementById("addBlockerDiv").clientHeight > 0) {
        console.log('adblock not present');
    } else {
        console.log('adblock present');
    }
}