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 相关文章推荐
js 替换
Feb 19 Javascript
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
Jul 14 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
Jun 28 Javascript
jquery 选择器引擎sizzle浅析
Feb 06 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
Feb 05 Javascript
JavaScript 异步调用
Oct 25 Javascript
详解HTML5 使用video标签实现选择摄像头功能
Oct 25 Javascript
微信小程序实现自定义加载图标功能
Jul 19 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 Javascript
基于Express框架使用POST传递Form数据
Aug 10 Javascript
jquery实现点击弹出对话框
Feb 08 jQuery
网页中表单按回车就自动提交的问题的解决方案
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 获取一个月第一天与最后一天的代码
2010/05/16 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
用 JSON 处理缓存
2007/04/27 Javascript
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
python k-近邻算法实例分享
2014/06/11 Python
python追加元素到列表的方法
2015/07/28 Python
怎样使用Python脚本日志功能
2016/08/14 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
演讲稿祖国在我心中
2014/05/04 职场文书
警示教育活动总结
2014/05/05 职场文书
推广普通话演讲稿
2014/05/23 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
计划生育工作总结2015
2015/04/03 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
如何用python反转图片,视频
2021/04/24 Python
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL