虽然自己的网站流量十分少,但是还是加了一个谷歌广告,用来自己耍。添加之后发现很多电脑浏览器插件很直接进行屏蔽,手机浏览器也会进行屏蔽。虽然自己也不喜欢广告,但是如何在检测出广告被屏蔽后在原来位置上输出一句话提醒浏览者不要关闭本站的广告展示呐? 自己在网上找了一些有用的方法,一种是检测广告div的高度,如果高度是0则进行了屏蔽,另一种是自己建一个js,其名称和路径与真实广告的js差距不大,能让插件误拦截,通过检测该js是否加载来判断是否遭到屏蔽。 因为不同的广告插件可能自己拦截方式不同,我就把这两种方法结合一下来进行判断。 首先在自己的广告单元上加两个div(可以根据自己的需求,自行更改)
代码语言:javascript复制<div id="jiance">
<div id="ads" class="adsbygoogle" align="center" style="width: 80%;margin-left: auto;margin-right: auto;">
<!-- 我是广告-->
</div>
</div>
之后在footer最后加入js判断语句
代码语言:javascript复制<script src="https://files.mebyz.cn/ad/adview_pic_cpc_cpm_cpa_guanggao_gg_ads_300x250.js" type="text/javascript">
</script>
<script type="text/javascript">
window.onload =setTimeout(function(){
var hhh=document.getElementById("ads").offsetHeight;
if (typeof(killads)=='undefined' || hhh==0){document.getElementById('jiance').innerHTML = '<div class="shengjs" style="color: red;border: 1px solid;font-size: 15px;">呀,请不要屏蔽广告!(可能误判)</div>';
}},3000);
</script>
第一个script标签里面是加载一个欺骗js,通过第二个script标签进行判断,同时第二个script也进行判断高度是否为零。二者符合一个在id为jiance的div中插入你需要说的内容。 两种方法均有误判的可能,有时候谷歌广告他自己不出来,于是就造成误判了,这也是我没法解决的。但是概率不大,只要你插入的内容不影响浏览者观看就好。