Adblock正在阻止iframe重定向-如何检测
Adblock is blocking iframe redirects - how to detect?
我有一个在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是否正确加载,并根据它做出响应。
相关文章:
- 如何检测是否有溢出
- 如何检测用于WebGL的专用或集成显卡
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 如何使用密码检测网络中的状态连接
- 使用JavaScript检测Flash
- 在不阻止默认行为的情况下检测IE10中的缩放
- 检测个位数整数时正在转换毫秒
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 动态插入的表:JQuery未检测到最后一行
- 检测页面上某个元素中选择(突出显示)或单击的内容
- jQuery检测浏览器是否支持Zoom
- 检测iframe是否跨域的愚蠢方法
- 检测图像分辨率
- 如何检测第三方广告服务器请求
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 当没有文本输入聚焦时检测空格键按下
- 正在检测导航到<a name=“;最新主题”></a>
- 如何检测重叠元素下的单击
- 如何检测负责网站某些部分的JavaScript根文件