JS判断网页广告被屏蔽解,广告终结者、AdGuard插件判断并提示

JSON 2018-11-18 18:24:37 20452

做网站,尤其是IT类型的网站,没有额外的收入,只有一点广告费收入,但是这种网站的大部分用户群体就是程序员,也就是我们这种程序员大部分会安装“广告终结者”、“AdGuard”等广告拦截插件。


我一般不会安装这些东西,我现在来测试这些安装了这些软件。确实挺厉害的。全拦截了。

JavaScript 引入文件检测广告插件

AdGuard 是根据文件名来判断的,网上有方案,比如说我们自己创建一个文件名为一些常用广告的文件名。

我们创建一个文件名为“adview_pic_cpc_cpm_cpa_guanggao_gg_ads_300x250.adsbygoogle.js”的  JS  文件,文件内容,我们定义一个全局变量。

window.ads = 'sojson.v4';

然后在这个JS下面加入以下代码:

<script src="//file.sojson.com/ad/adview_pic_cpc_cpm_cpa_guanggao_gg_ads_300x250.adsbygoogle.js"></script>
    <script>
        if(typeof(ads) == 'undefined'){
            setInterval(function () {
                alert('如果本站的广告您要屏蔽的话。抱歉,咱们相互选择吧。\n\n请对本站屏蔽广告插件关掉。\n\n本站的广告如果有对您使用本站工具有影响,请告知我。\n\n如果没有,还请多多照顾,点点感兴趣的广告。\n\n解决办法:关闭屏蔽,刷新网页就解决了。');
            },3e3);
        }
    </script>

如果用户安装了“AdGuard”插件,那么会提示下面的内容,并且3秒显示一次。



但是我再安装了比较火“广告终结者”发现此方案无效。我观察了一下,“广告终结者”是通过域名来判断的。

JS针对性性判断广告是否被拦截

我针对性观察了下,广告屏蔽和不屏蔽的区别,来看看下面的张图。上面是被屏蔽,下面是无屏蔽有广告的  HTML  代码。


是不是就有思路了?

这个是  google  广告,加载都是用<ins>标签,class="adsbygoogle",我们就简单的判断下ins标签的内容为空,为了判断减少误判,我们判断所有的都为“”,就已经屏蔽了。

var as = document.querySelectorAll('.adsbygoogle'),al=as.length;
as.forEach(function(a,b){
	if(a.innerHTML==''){
		al-=1;
		if(al===0){
			setInterval(function () {
                alert('如果本站的广告您要屏蔽的话。抱歉,咱们相互选择吧。\n\n请对本站屏蔽广告插件关掉。\n\n本站的广告如果有对您使用本站工具有影响,请告知我。\n\n如果没有,还请多多照顾,点点感兴趣的广告。\n\n解决办法:关闭屏蔽,刷新网页就解决了。');
            },3e3);
		}
	}
});

完全有效,缺点就是要针对性。


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/307.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
IE浏览器判断判断IE版本的HTML语句详,如:[if lte IE 9]……[endif]
JS中 “is not defined” 如何判断defined,defined和undefined 的区别
Javascript 判断域名合法性,JS域名格式检测
如何判断字符串是JSON数组还是JSON对象
Httpclent 请求限制,判断返回类型和返回数据大小
怎么查询网站备案号以及如何判断备案号的真假
Elasticsearch 插件(备忘录)
Elasticsearch教程(四) elasticsearch head 插件安装和使用
怎么加密html网页代码
js html5 canvas制作多个小球碰撞的动画效果
最新文章
Python print() 函数 17
PHP if/else/elseif 语句 81
HTML5 Canvas弧线教程 74
Java赋值运算符 118
XML内部实体和外部实体 217
Java面向对象编程概念 177
PHP回显语句 128
Linux—文件树 142
C语言while循环和do while循环 150
Python元组剖析 209
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 682761
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674741
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 603031
免费天气API,天气JSON API,不限次数获取十五天的天气预报 581231
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 553167
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509466
Elasticsearch教程(四) elasticsearch head 插件安装和使用 480074
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 264911
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244332
Elasticsearch教程(一),全程直播(小白级别) 225661
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...