我正在更新我的人事网站,在Chrome下安装adBlock后,我注意到了一些故障。我发现adBlock阻止了我的网站上的一些资源,比如twitter-timeline script和linkedin.pnp image。我禁用adBlock一切恢复正常。 是否有一些Javascript代码可以知道浏览器何时有阻止扩展并要求用户禁用它?
谢谢
答案 0 :(得分:0)
首先,您必须包含一个名为advertisement.js的JavaScript文件。由于AdBlock Plus的过滤规则,此文件会自动被阻止。因此,我们可以使用此文件来执行一些我们可以稍后测试的内容,以查看用户是否正在使用adblocker。
<script type="text/javascript" src="advertisement.js"></script>
其内容为:
document.write('<div id="tester">an advertisement</div>');
该文件将一个元素写入我们稍后将测试的页面。 CSS规则使该元素不可见:
#tester {
display:none;
现在我们在我们希望显示消息的位置使用另一段JavaScript。这测试我们之前创建的“tester”div的存在。如果它在那里,这意味着ABP没有阻止我们的ads.js文件,一切都很好。如果它不存在,则意味着某种软件阻止了advertisment.js,因此我们可以向该页面写一条特殊的消息。
<script type="text/javascript">
if (document.getElementById("tester") != undefined)
{
document.write('<p class="yes">No <strong>AdBlock Plus</strong> detected! Thanks for truly supporting our site.</p>');
}
else
{
document.write('<p class="no">We\'ve detected that you\'re using <strong>AdBlock Plus</strong> or some other adblocking software. Please be aware that this is only contributing to the demise of the site. We need money to operate the site, and almost all of that comes from our online advertising. To read more about why you should disable ABP, please <a href="#">click here</a>.<!-- end .content --></p>');
}
</script>
Here是答案的来源。