JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法

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

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

时间: 2014-11-02

JavaScript屏蔽指定区域内右键菜单

[把鼠标放在这里单击右键试试] function click() { if(event.button == 2) { alert("右键被屏蔽"); } } document.getElementById("abc").onmousedown=click [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码

//屏蔽鼠标右键.Ctrl+n.shift+F10.F5刷新.退格键  function KeyDown(){  if ((window.event.altKey)&&  ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←  (window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 →  alert("不准你使用ALT+方向键前进或后退网页!");  event.returnValue=false; 

javascript屏蔽右键代码

javascript屏蔽右键 复制代码 代码如下: <span style="font-size:18px;color:#ff0000;"><strong>document.oncontextmenu=function(e){ return false; };</strong></span>

实用javaScript技术-屏蔽类

一.屏蔽键盘所有键<script language="javascript"><!--function document.onkeydown(){event.keyCode = 0;event.returnvalue = false;}--></script> 二.屏蔽鼠标右键 在body标签里加上oncontextmenu=self.event.returnvalue=false 或者:<script language="javas

javascript实现划词标记+划词搜索功能

复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>  <head>  <title>Untitled Document</title>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312"

JavaScript 关键字屏蔽实现函数

复制代码 代码如下: <script language="javascript1.2"><!-- function test() { if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){ alert(":)"); a.b.focus(); return false;} } // --></script>

javascript 屏蔽鼠标键盘的几段代码

//屏蔽鼠标右键.Ctrl+n.shift+F10.F5刷新.退格键  function KeyDown(){  if ((window.event.altKey)&&  ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←  (window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 →  alert("不准你使用ALT+方向键前进或后退网页!");  event.returnValue=false; 

javascript实现网页屏蔽Backspace事件,输入框不屏蔽

下面通过javascript代码实现网页屏蔽Backspace事件,输入框不屏蔽,具体代码如下: document.onkeydown = function (e) { var code; if (!e){ var e = window.event;} if (e.keyCode){ code = e.keyCode;} else if (e.which){ code = e.which;} //BackSpace 8; if ( (event.keyCode == 8) && ((eve

JavaScript实现自动对页面上敏感词进行屏蔽的方法

本文实例讲述了JavaScript实现自动对页面上敏感词进行屏蔽的方法.分享给大家供大家参考.具体如下: <html> <head> <title>Bad Words Example</title> <script type="text/javascript"> function filterText(sText) { var reBadWords = /badword|anotherbadword/gi; return sT

javascript过滤危险脚本方法

下面是他们的字符串规则: 1.<(script|link|style|iframe)(.|\n)*<\/\1>\s* 2.\s*on[a-z]+\s*=\s*("[^"]+"|'[^']+'|[^\s]+)\s*(?=>) 3.\s*(href|src)\s*=\s*("\s*(javascript|vbscript):[^"]+"|'\s*(javascript|vbscript):[^']+'|(javascript|

在textarea中屏蔽js的某个function的javascript代码

有一个textarea,我想在这焦点在这个textarea中的时候屏蔽某个function,      就是使这个function失效,移出焦点后重新使其有效,请问该怎样实现??? 1楼 在你的那个函数里通过   document.activeElement   得到当前网页聚焦的那个控件,   判断这个若是这个   textarea   则跳出不执行本函数 2楼 楼上正解,向meizz学习 3楼 to   meizz(梅花雪)        我是用      document.activeEl

微信小游戏中three.js离屏画布的示例代码

国庆8天长假,重庆之行因故未成,偶得闲,用three.js结合cannon.js写个3D小游戏耍耍. 在微信小游戏中,把three.js的3D内容在离屏画布处理,然后复制到在屏画布,方法是: let c_toolbarHeight=140; let sysInfo=wx.getSystemInfoSync(); require('./js/libs/weapp-adapter.js'); var canvas_webGL=window.canvas; canvas_webGL.width = s

iOS中使用JSPatch框架使Objective-C与JavaScript代码交互

JSPatch是GitHub上一个开源的框架,其可以通过Objective-C的run-time机制动态的使用JavaScript调用与替换项目中的Objective-C属性与方法.其框架小巧,代码简洁,并且通过系统的JavaScriptCore框架与Objective-C进行交互,这使其在安全性和审核风险上都有很强的优势.Git源码地址:https://github.com/bang590/JSPatch. 一.从一个官方的小demo看起 通过cocoapods将JSPath集成进一个Xcod

从textarea中获取数据之后按原样显示实现代码

步骤: 1. 用<pre><c:out value="<%=从数据库显示的字段%>"></c:out></pre> 2. 显示页面中增加: 复制代码 代码如下: <style type="text/css"> pre { white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space:

AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)

个人觉得不甚满意,因为VB.NET在.NET环境下执行采集,产生的网络连接与正则匹配消耗太大,而我最终的应用是在视频采集提交上,所以就考虑用JS的AJAX+正则表达式来完成这个目标. 以前一直没有系统地学习JS和正则,所以花费的时间比预想的要长,折腾了一个晚上,糊弄出了下面的代码.=..= 复制代码 代码如下: <!-- 夜闻香原创,转载请保留此信息,万分感谢! 博客: http://clso.cnblogs.com 主页: http://cleclso.cn QQ:315514678 E-ma

基于JS实现textarea中获取动态剩余字数的方法

案例介绍:我们常见到有的网站有textarea文本框,当你输入的时候,下面有文字提示还能输入多少个字,今天就是要实现这个功能.当然,由于一个页面有好几个textarea,所以使用单个js逻辑进行控制是不行的,得小小的进行封装一下.当然我的封装还有缺漏,但是基本功能是实现了. 首先介绍下单个textarea实现案例 html部分: <textarea id="text_txt1"></textarea> <span id ="num_txt1&qu

jQuery替换textarea中换行的方法

本文实例讲述了jQuery替换textarea中换行的方法.分享给大家供大家参考.具体分析如下: 昨天同事在学习jQuery的时候,希望使用替换掉textarea中的换行. html部分: <fieldset> <textarea id="ncontent"></textarea> </fieldset> <button id="submit">提 交</button> js部分: $(docu

javascript获得光标所在的文本框(text/textarea)中的位置

js获得光标所在的文本框(text/textarea)中的位置 function getPosition(obj){ var result = 0; if(obj.selectionStart){ //IE以外 result = obj.selectionStart }else{ //IE var rng; if(obj.tagName == "textarea"){ //TEXTAREA rng = event.srcElement.createTextRange(); rng.mo

jQuery往textarea中光标所在位置插入文本的方法

本文实例讲述了jQuery往textarea中光标所在位置插入文本的方法.分享给大家供大家参考.具体实现方法如下: <html> <head> <script src="jquery-1.8.1.min.js"></script> <script > $(function() { /* 在textarea处插入文本--Start */ (function($) { $.fn.extend({ insertContent : f

Jquery实现点击按钮,连续地向textarea中添加值的实例代码

代码如下: 复制代码 代码如下: <%@ page language="java" contentType="text/html; charset=gbk"    pageEncoding="gbk"%>    <%@ include file="/pages/common/taglibs.jsp"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0