📜  检测 adblock javascript (1)

📅  最后修改于: 2023-12-03 15:10:56.605000             🧑  作者: Mango

检测 Adblock JavaScript

Adblock已经成为网络界非常流行的一种浏览器插件。当用户在使用浏览器访问网站时,Adblock插件会自动屏蔽所有的广告,这也导致了很多网站广告收益的减少。在这种情况下,对于网站来说,检测并防止Adblock的使用,变得尤为重要。

本文主要介绍如何检测用户是否在使用Adblock,并且提供几种常用的防止Adblock的解决方法。

检测是否使用 Adblock
利用 Adblock 会阻挡广告的特点来检测功能

我们可以通过检测浏览器的工作状况是否正常,来判断用户是否使用Adblock。下面是一个简短的JavaScript脚本:

var adTest = document.createElement('div');
adTest.innerHTML = ' ';
adTest.className = 'adsbox';
document.body.appendChild(adTest);
window.setTimeout(function() {
    if(adTest.clientHeight === 0) {
        alert('您正在使用Adblock!');
    }
    document.body.removeChild(adTest);
},100);

这段代码会在文档树中创建一个名为“adsbox”的

标签,并将其添加到标签中。在100毫秒以后,我们可以检测
标签的尺寸是否为0.如果为0,就代表Adblock开启了,否则为正常浏览器状态。

检查常见的 Adblock 标志

我们还可以检查网页中常见的Adblock标识符,比如AdblockPluslogo或EasyList。例如:

if(typeof AdBlockDetector === 'undefined') {
    alert('您正在使用Adblock!');
}

在本段代码中,我们是通过检查AdBlockDetector对象是否存在来判断是否使用Adblock。

解决 Adblock 问题
在网站中显示备用内容

有许多站长为了避免Adblock的阻止,采用了一种简单而有效的解决方案。当Adblock开启时,站长会在网页中展示备用内容。这种方案关键在于给用户留下好的体验。

<div id="ads"></div>
<script type="text/javascript">
    $(document).ready(function() {
        if($("#ads").height() === 0) {
            $("#ads").html('这里本来应该展示广告');
        }
    }); 
</script>

在本例中,我们首先在HTML文件中创建了一个名为“ads”的

标签。在JavaScript脚本中,我们检查了这个标签的尺寸,如果发现它被Adblock阻止了,那么它就会展示一段备用内容。

检查Adblock,如果被锁定就弹出窗口

我们可以在网页中显示一个提示框,告诉用户需要关闭Adblock才能继续浏览:

$(document).ready(function() {
    if(typeof(jQuery) !== 'undefined') {
        window.setTimeout(checkAdBlock, 1000);
    } else {
        window.setTimeout(arguments.callee, 50);
    }
});

function checkAdBlock() {
    if($("#ads").height() === 0) {
        alert('请关闭Adblock以继续浏览该网站');
    }
}
总结

本文介绍了如何检测用户是否在使用Adblock,并且提供几种常用的解决方法,来确保用户能够浏览网页广告。这些解决方案不仅能帮助提高网站的广告展现率,同时也可以提高用户的体验。