Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Adblock正在阻止iframe重定向-如何检测?_Javascript_Affiliate_Adblock - Fatal编程技术网

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

Javascript Adblock正在阻止iframe重定向-如何检测?,javascript,affiliate,adblock,Javascript,Affiliate,Adblock,我有一个在iframe中执行大量重定向的页面,其中目标大多是附属网络页面(执行指向商店等的重定向),标记看起来像: 如您所见,如果启用了ad blockerk,则不会加载iframe。我需要以某种方式检测到这一点,以便我可以直接重定向,或者至少将情况通知用户 正常的方法是简单地检查广告,或者如果广告拦截器处于活动状态,不检测什么。不幸的是,此页面上没有实际的广告可供检查。您可以检测您的网站是否有广告拦截器访问。在标记中,-或者在任何地方-放置以下内容: <script type="tex

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

如您所见,如果启用了ad blockerk,则不会加载iframe。我需要以某种方式检测到这一点,以便我可以直接重定向,或者至少将情况通知用户


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

您可以检测您的网站是否有广告拦截器访问。在
标记中,-或者在任何地方-放置以下内容:

<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>

window.ADS_BLOCKED=true;
如果(窗口广告被阻止)
警惕('你阻止了我…');

包含的Javascript
detect.js
window.ADS\u BLOCKED
设置为
false
。广告拦截器会因为文件名(“广告”)而阻止加载此文件。

给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>

if(document.getElementById(“ad”)==null){
警告(“广告已被删除!”);
}
其他的
{
警惕(“没事,它还在这里。”);
}
编辑:刚刚修复了一个错误

这为Javascript提供了一种访问广告元素的方法。后面的Javascript代码(
if(document.getElementById(“ad”)==null)
)只检查元素是否存在——如果不存在,则表示adblocker已将其删除

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

编辑2:


使用这个答案,您可以简单地检查iframe中的HTML是否正确加载,并基于此做出响应。

您依赖的是在非常粗糙的规模上工作的广告拦截器。一些系统(例如Peerblock)有已知广告站点的列表,并直接阻止这些站点。其他系统使用元素名称。你不能保证每个系统都能这样工作。有些人会,但不是全部。我已经想到了类似的事情,但由于@dawmail333提到的原因,这将是我的最后一次RestoreAddBlock不会破坏iframe-而是在iframe内停止请求,使其作为父文档中的一个元素存在whats so everOk,我看看以后能不能找到解决办法。