JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法


Posted in Javascript onNovember 03, 2014

每个人都讨厌广告。看电视、看电影、看优酷、看网页时,对满天飞的广告也是深恶痛绝。广告是一个不招人喜欢的东西。但是,对一个中小网站站长/博客主来说,广告几乎是唯一的能成支持网站/博客正常运转的资金来源。如果一个博客主,只是无私发布稿件,能坚持几年的,很少。大多数慢慢失去了热情。

火狐浏览器和谷歌浏览器里都有能够屏蔽页面给广告的插件,最有名的是AdBlock和AdBlock Plus。前几天,我做一个统计,看看浏览网站的用户中有多少人使用了AdBlock插件,发现这个数目竟然有总浏览人数的1/5。

1/5是一个不小的数目。如何能让广告位在这1/5的使用了AdBlock插件的用户的页面上用其它图片代替呢?要想做到这一点,首先是要有个办法知道当前浏览器中使用了AdBlock插件。经过一些测试,我发现,AdBlock对“Ad”或“Google AD”这样的词非常敏感,只要是某个页面元素的ID或css class名中有“Ad”字样的,这个元素基本上都会被AdBlock插件屏蔽掉,也就是 display:none:

<div class='google-ad testAd'> 这个div将会被屏蔽掉 </div>

有了这个规律,我就能够使用JavaScript发现当前浏览器是否开启了AdBlock插件。首先,我们将Google广告代码放到一个div里,并且将div的css class name里放入一个很明显的表示google AD的类名:

<div class='google-ad testAd'> 这里放置Google广告代码</div>

然后在页面的底部用Js检测,:

if ($('.google-ad').height() == 0) showOtherImage();

这里还有一个问题,Google的广告通常是指Dom加载完毕后显示的,为了保证在Google广告加载完成后再进行探测,要给js代码加入延迟执行特征,这样避免了误检测:

$(function(){

   setTimeout(function(){

  if ($('.google-ad').height() == 0)

   showOtherImage();

  },3000);

});

这里的showOtherImage();方法里我们能做些什么呢?我们可以放一些京东、当当、亚马逊会其它网站的促销图片和链接,通过获取佣金,多少算是对损失的一点弥补。

Javascript 相关文章推荐
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 Javascript
jQuery.query.js 取参数的两点问题分析
Aug 06 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
Jan 27 Javascript
JavaScript中的apply和call函数详解
Jul 20 Javascript
JS如何实现文本框随文本的长度而增长
Jul 30 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
Jan 25 Javascript
webpack中如何使用雪碧图的示例代码
Nov 11 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
JavaScript事件概念详解(区分静态注册和动态注册)
Feb 05 Javascript
网页中表单按回车就自动提交的问题的解决方案
Nov 03 #Javascript
详解jquery中$.ajax方法提交表单
Nov 03 #Javascript
jquery处理json对象
Nov 03 #Javascript
js格式化时间小结
Nov 03 #Javascript
解决js下referer兼容各大浏览器的方法
Nov 03 #Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
Nov 02 #Javascript
jQuery中ajax和post处理json的不同示例对比
Nov 02 #Javascript
You might like
是否存在第一台收音机的说法
2021/03/01 无线电
全文搜索和替换
2006/10/09 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
Bootstrap组件(一)之菜单
2016/05/11 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
python添加菜单图文讲解
2019/06/04 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
ET Mall东森购物网:东森严选
2017/03/06 全球购物
开工庆典邀请函范文
2014/01/16 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
租房协议书样本
2014/08/20 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
劳模事迹材料范文
2014/12/24 职场文书
社区党务工作总结2015
2015/05/19 职场文书
行为规范主题班会
2015/08/13 职场文书
导游词之无锡梅园
2019/11/28 职场文书