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 相关文章推荐
DOM_window对象属性之--clipboardData对象操作代码
Feb 03 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
js为数字添加逗号并格式化数字的代码
Aug 23 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
微信小程序联网请求的轮播图
Jul 07 Javascript
详解Node全局变量global模块
Sep 28 Javascript
分享5个好用的javascript文件上传插件
Sep 16 Javascript
JQuery属性操作与循环用法示例
May 15 jQuery
Vue.js 无限滚动列表性能优化方案
Dec 02 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 06 Javascript
vue使用canvas实现移动端手写签名
Sep 22 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
ThinkPHP框架安全实现分析
2016/03/14 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
python实现邮件发送功能
2019/08/10 Python
python能否java成为主流语言吗
2020/06/22 Python
python selenium xpath定位操作
2020/09/01 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
生产车间标语
2014/06/11 职场文书
二年级学生期末评语
2014/12/26 职场文书
地雷战观后感
2015/06/09 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS