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

Adblock is blocking iframe redirects - how to detect?

本文关键字:何检测 检测 重定向 iframe Adblock      更新时间:2023-09-26

我有一个在iframe内执行大量重定向的页面,其中目标大多是附属网络页面(执行到商店的重定向等),标记看起来像:

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

正如您所看到的,如果您启用了广告块,则不会加载iframe。我需要以某种方式检测到这一点,这样我就可以直接重定向,或者至少通知用户情况。

正常的方法是简单地检查广告,或者如果广告屏蔽程序处于活动状态,则不检测什么。不幸的是,此页面上没有实际的广告可供检查

您可以检测您的网站是否被广告拦截程序访问。在<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。广告阻止程序会阻止加载此文件,因为它的文件名("advertise")。

给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代码只是检查元素是否存在——如果不存在,则意味着广告拦截程序已经删除了它

一些广告拦截程序(比如Chrome的早期版本的AdBlock)只是隐藏元素,而不是删除它——我将把它留给你做练习,因为我只通过JQuery检查过DOM元素上的CSS。

编辑2:

在这里使用这个答案,您可以简单地检查iframe中的HTML是否正确加载,并根据它做出响应。