每个人都讨厌广告。看电视、看电影、看优酷、看网页时,对满天飞的广告也是深恶痛绝。广告是一个不招人喜欢的东西。但是,对一个中小网站站长/博客主来说,广告几乎是唯一的能成支持网站/博客正常运转的资金来源。如果一个博客主,只是无私发布稿件,能坚持几年的,很少。大多数慢慢失去了热情。

火狐浏览器和谷歌浏览器里都有能够屏蔽页面给广告的插件,最有名的是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();方法里我们能做些什么呢?我们可以放一些京东、当当、亚马逊会其它网站的促销图片和链接,通过获取佣金,多少算是对损失的一点弥补。

最新文章

  1. 引入DecimalFormat类进行数字格式化操作
  2. CMS系统存储路径
  3. MySql常用命令总结
  4. flex布局
  5. HDU1443 模拟(难)
  6. webview中的页面兼容iphone6和6+
  7. Python中执行系统命令常见的几种方法--转载
  8. JAVA技术图谱
  9. addEventListener解决多个window.onscroll共存的2个方法
  10. EF 批量 添加 修改 删除
  11. bootstrap4 Reboot details summary 美化(点选禁止选中文本,单行隐藏角标,多行后移)
  12. zabbix4.0离线快速编译安装(编译安装方法)
  13. git commit -m 与 git commit -am的区别
  14. 翻译 Improved Word Representation Learning with Sememes
  15. ORA-03113: end-of-file on communication channel(归档满处理方法)
  16. 开发.Net Script 模板-MyGeneration (翻译)
  17. Elasticsearch聚合 Date Histogram聚合
  18. php -- 文件操作(创建、复制、移动、删除)
  19. 宁波Uber优步司机奖励政策(1月11日~1月17日)
  20. webservice_客户端生成工具

热门文章

  1. CSS Selector (part 1)
  2. jquery用on代替bind(),live(),delegate()的方法
  3. mysql修改主键
  4. unique函数 (STL)
  5. BLOCKED和WAITING的区别
  6. php图片等比例缩放
  7. MySQL - 日志管理
  8. 2.1 JavaScript应用开发实践指南
  9. MFC下拉框使用方法
  10. linux下面的查找