【问题标题】:Accounting for Adblock Plus users in websites占网站中的 Adblock Plus 用户
【发布时间】:2013-12-25 07:31:37
【问题描述】:

大家好(还有圣诞快乐),

我刚刚在一个目前还没有上线的网站上工作,我正在尝试解释安装了 Adblock Plus 的用户(即修复边距和填充,以便网站的布局不会在ABP 摆脱了持有广告的 div)。

目前我的 jQuery 是:

function detectAdBlock() {
    if($('.adsbygoogle').css('display') == 'none') {
        $('.adblock').css('display', 'block');
        $('.adfail').css('display', 'block');
    } else {
        $('.adblock').css('display', 'none');
        $('.adfail').css('display', 'none');
    }
}

$(detectAdBlock);

这适用于 Chrome 的 AdBlock 扩展,但对 AdBlock Plus 没有任何作用。

我也尝试过使用:

if($('.adsbygoogle').height() == 0) { // Whatever }

但这根本不起作用。

我知道有广告是有争议的,但我只是在寻找一个答案,而不是争论为什么我不应该有广告 - 而且我正在尝试为没有广告的人修复布局看广告。

感谢任何帮助!

谢谢。

【问题讨论】:

  • 抛开它的内容,cplusplus.com 完全符合您的描述。查看参考部分中的任何页面以获取示例。
  • IMO,您应该让您的用户决定是否要删除广告。如果超出他们的选择,他们将不会访问您的网站。
  • 我从来没有说过我在向用户强制投放广告 - 我说我正在尝试为他们修复布局,因为填充和边距搞砸了......所以检测他们是否有广告拦截,如果有,使用不同的布局来解决这个问题,并且仍然看起来不错。

标签: jquery adblock


【解决方案1】:

发现问题,不得不使用:

$('.adsbygoogle').is(':hidden'))

对于 ABP。所以在if语句中:

function detectAdBlock() {
    if($('.adsbygoogle').css('display') == 'none' || $('.adsbygoogle').is(':hidden')) {
        $('.adblock').css('display', 'block');
        $('.adfail').css('display', 'block');
    } else {
        $('.adblock').css('display', 'none');
        $('.adfail').css('display', 'none');
    }
}

$(detectAdBlock);

【讨论】:

    【解决方案2】:

    我试图说明安装了 Adblock Plus 的用户(即修复边距和填充,以便在 ABP 摆脱包含广告的 div 时网站的布局不会中断)。

    与其尝试检测用户是否安装了 Adblock Plus,不如检测您想要解决的负面影响。如果 Adblock Plus 从 DOM 中删除了广告,则查看该广告是否在 DOM 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2014-10-13
      相关资源
      最近更新 更多