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 相关文章推荐
学习YUI.Ext基础第一天
Mar 10 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
Jun 18 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
jQuery实现手机版页面翻页效果的简单实例
Oct 05 Javascript
AngularJS入门教程之MVC架构实例分析
Nov 01 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
webpack打包react项目的实现方法
Jun 21 Javascript
代码分析vue中如何配置less
Sep 28 Javascript
JavaScript的词法结构精华篇
Oct 17 Javascript
vue设置导航栏、侧边栏为公共页面的例子
Nov 01 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调用Oracle存储过程的方法
2008/09/12 PHP
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
php事务处理实例详解
2014/07/11 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
python使用marshal模块序列化实例
2014/09/25 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
Python多层装饰器用法实例分析
2018/02/09 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
解决python flask中config配置管理的问题
2019/07/26 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Python 中@property的用法详解
2020/01/15 Python
python实现图像拼接
2020/03/05 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
土木工程毕业生自荐信
2013/09/21 职场文书
给同事的道歉信
2014/01/11 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
入团申请书格式
2019/06/20 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server