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 相关文章推荐
一个刚完成的layout(拖动流畅,不受iframe影响)
Aug 17 Javascript
js判断选择时间不能小于当前时间的示例代码
Sep 24 Javascript
JS 数字转换研究总结
Dec 26 Javascript
前端性能优化及技巧
May 06 Javascript
再谈Javascript中的异步以及如何异步
Aug 19 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
Mar 06 Javascript
Nuxt配合Node在实际生产中的应用详解
Aug 07 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
Feb 18 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
Vue仿百度搜索功能
Dec 28 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
vue封装数字翻牌器
Apr 20 Vue.js
网页中表单按回车就自动提交的问题的解决方案
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
PHP 登录记住密码实现思路
2013/05/07 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
Python中__init__和__new__的区别详解
2014/07/09 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
pandas的相关系数与协方差实例
2019/12/27 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
加拿大探亲邀请信
2014/01/28 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
教师师德演讲稿
2014/05/06 职场文书
感恩节活动策划方案
2014/05/16 职场文书
机械机修工岗位职责
2014/08/03 职场文书
佛光寺导游词
2015/02/10 职场文书
英语教师求职信范文
2015/03/20 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs