Adblock阻止iframe重定向 - 如何检测?

时间:2012-02-07 10:52:59

标签: javascript affiliate adblock

我有一个页面,它在iframe中执行大量重定向,其中目标主要是联盟网络页面(执行重定向到商店等等),标记看起来像:

http://jsfiddle.net/HPDNC/2/

如您所见,如果您启用了广告屏蔽,则iframe无法加载。我需要以某种方式检测到这一点,以便我可以进行直接重定向或至少告知用户情况。

通常的方法是简单地检查广告或不检测广告拦截器是否处于活动状态。很遗憾,此页面上没有实际广告可供检查

2 个答案:

答案 0 :(得分:2)

您可以使用广告拦截器检测您的网站是否被访问过。在<head>标记中,或者实际上在任何地方 - 放置:

<script type="text/javascript">
window.ADS_BLOCKED = true;
</script>
<script type="text/javascript" src="/advertise/detect.js"></script>
<script type="text/javascript">
if (window.ADS_BLOCKED)
   alert('You blocked me...');
</script>

随附的Javascript detect.js会将window.ADS_BLOCKED设置为false。 Ad-Blockers会阻止此文件加载,因为它的文件名(“advertise”)。

答案 1 :(得分:0)

为iframe指定ID,然后您可以使用javascript检查iframe是否存在。

以下是一个例子:

<script type="text/javascript">

if(document.getElementById("ad") == null) {
    alert("The ad has been removed!");
}
else
{
    alert("It's alright, it's still here.");
}

</script>

编辑:刚修正错误。

这样做可以让Javascript成为访问广告元素的一种方式。 (if(document.getElementById("ad") == null))之后的Javascript代码只检查元素是否存在 - 如果不存在,则表示广告拦截器已将其删除。

有些广告拦截器(比早期版本的AdBlock for Chrome)只是隐藏了元素,而不是将其删除 - 我会把它作为练习让你去做,因为我只通过DOM元素检查了CSS JQuery的。

编辑2:

使用此回答here,您只需检查iframe中的HTML是否已正确加载,并根据该回复进行回复。