adblock拦截iframe

本文介绍了一种检测浏览器Adblock插件的方法,通过JavaScript检查广告iframe的高度来判断广告是否被屏蔽,并提供了简单的示例代码。

#*(src*=http://cpro.baidu.com/)

 来源http://thepcspy.com/read/how_to_block_adblock

Blocking Adblock

We start off with our advert code. Most designers nest their code in a positioning element like a <div>. Have a butchers at the following code to see what I’m on about:

<div class="myTestAd" style=" text-align:center;margin:10px">
	<!-- advert code goes here -->
</div>

In place of the comment there is advert code. This is usually a JavaScript link off to the advertising agency’s website. In the case of Google AdSense, it’s a link off to http://pagead2.googlesyndication.com/pagead/show_ads.js. This script generates the HTML to be displayed on the page inside an iframe. In layman’s‘ terms, an iframe is effectively a web page nested inside a page. This allows Google, in this case, to display their advert to the end user.

So what ends up being rendered is an iframe inside our div. If Adblock is introduced into the equation, the following rule nukes the advert: #*(src*=http://pagead2.)

This is a CSS-selector-based rule that hides any output whose source points to any address beginning with http://pagead2. so the iframe whose source URL does begin with that, is hidden. Not blocked. The JavaScript code still runs but the output is hidden.

Therefore using another chunk of JavaScript at page-level, we can quickly see if the advert has been blocked with this rule. How? We just query the height of the output iframe. If it equals zero, it has been mushed otherwise everything is fine. To do this check we need to call upon the mystic powers of the Document-Object Model but because I’m lazy like that, I’m using the very excellent jQuery library to do all the leg-work. Here is all the JavaScript we need to detect and alert the user they’re blocking adverts:

function TestPage() {
    if ($('.myTestAd').height() == 0)
        alert("You are blocking my beautiful adverts, you swine!");
}

$(TestPage);

I meant it. A chimp could come up with that. The Window.onDomReady part is a MooTools function that only executes the code when the page is ready to be tested. That is the only nearly-complex thing about it.

Check out the test page

This version just pops up a message box, calls the user a swine and leaves them be but if people wanted to get really obnoxious about their adverts, they could redirect them, blocking them outright.

转载于:https://www.cnblogs.com/dabaopku/archive/2011/01/17/1937674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值