首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断阻止广告拦截器的脚本是否正在阻止加载is文件

问如何判断阻止广告拦截器的脚本是否正在阻止加载is文件
EN

Stack Overflow用户
提问于 2015-01-09 08:56:37
回答 2查看 1.5K关注 0票数 0

我正在尝试开发一种方法来判断ghostery是否阻止了google doubleclick广告脚本的加载。我不想使用侦听器,我只想知道该脚本或url是否被阻止。我想出了这个错误,但我可以区分错误消息。希望有一个比失败的ajax调用更好的解决方案。

我只想报告有多少用户没有看到广告,因为他们正在使用启用的广告脚本阻止程序。

代码语言:javascript
复制
  $.ajax({
    url: 'http://www.googletagservices.com/tag/js/gpt.js',
    type: 'GET',
    error: function(d) {
      console.log('error', d, '/error');
      if(d.statusText != 'error') {
        console.log('ghostery enabled');
      } else {
        console.log('script is not blocked');
      }
    }
  });
EN

回答 2

Stack Overflow用户

发布于 2015-01-10 07:23:15

看起来这个方法是目前唯一不使用间隔或超时的方法,

代码语言:javascript
复制
<script src="http://www.googletagservices.com/tag/js/gpt.js" onload="callback()" onerror="error()"></script>

function callback() {
  // in this case you will need to verify the gpt object isn't blank for some ad blockers in chrome
}

function error() {
  // most script blocking ad blockers will end up here.  All script blocking ad blockers (ghostery, disconnect) I have seen in firefox end up here.
}
票数 0
EN

Stack Overflow用户

发布于 2015-07-30 03:19:40

使用函数测试尝试超时,以检查脚本设置的全局变量是否已加载。即:

代码语言:javascript
复制
function loadExtScript(src, test, callback) {
  var s = document.createElement('script');
  s.src = src;
  document.body.appendChild(s);

  var callbackTimer = setInterval(function() {
    var call = false;
    try {
      call = test.call();
    } catch (e) {}

    if (call) {
      clearInterval(callbackTimer);
      callback.call();
    }
  }, 100);
}

要使用它,就像这样:

代码语言:javascript
复制
this.loadExternalScript('www.domain.com/script.js', function () {
    return (typeof window.myscriptobject === 'undefined');
}, onScriptFailedToLoad);

您将通过javascript从外部加载脚本,但您可以测试是否设置了全局变量。如果它在超时结束时还没有加载,那么你可以假定它加载失败。请注意,虽然这绝不是一个完美的解决方案,更长的超时将是一个更安全的赌注,但仍然不是理想的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27852263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档