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 相关文章推荐
不错的一个日期输入 动态
Nov 06 Javascript
javascript应用:Iframe自适应其加载的内容高度
Apr 10 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 Javascript
JS控制日期显示的小例子
Nov 23 Javascript
easyui datagrid 键盘上下控制选中行示例
Mar 31 Javascript
介绍一个简单的JavaScript类框架
Jun 24 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
Jul 27 Javascript
vue.js使用3DES加密的方法示例
May 18 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
Sep 26 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
vue实现简单全选和反选功能
Sep 15 Javascript
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
Apr 13 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
在PHP的图形函数中显示汉字
2006/10/09 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
CI框架中zip类应用示例
2014/06/17 PHP
培养自己的php编码规范
2015/09/28 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
学习Node.js模块机制
2016/10/17 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
留学推荐信中文范文三篇
2014/01/25 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
幼儿评语大全
2014/04/30 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书