0

我试图在通常是 300x250 广告的地方显示背景图片,但前提是 adblock 阻止了广告。任何人都知道如何做到这一点?使用 div 会导致背景在我不想要的广告加载之前显示。

谢谢

4

3 回答 3

1

由于访问者的计算机上安装了 adblock 软件,因此无法知道广告是否被阻止(我能想到的)。但是,由于广告是使用 JavaScript 显示的——它是 adblock 软件专门针对和阻止的——你可以编写一些 JavaScript 来检查广告是否在页面末尾加载,如果没有,添加一个 CSS 类显示您div想要的背景图像。伪代码:

<style type="text/css">
     .adblocked { background: url("img/no-ad.jpg") left top no-repeat; }
</style>

<div id="ad"></div>

<script src="ads.js"></script>
<script>
    if (typeof adLibraryName === "undefined") {
        // ad stuff was not loaded
        document.getElementById("ad").className += " adblocked";
    }
</script>

正如 MAXIM 所说,这与 PHP 无关,您无法让它与 PHP 一起使用,因为 PHP 在服务器上运行并且不知道是否安装了广告拦截。简而言之,所有这些都是客户端问题。

于 2012-12-14T12:59:11.257 回答
0

检查 Adsense 是否被阻止,从而将替代内容加载到广告容器中。

if (typeof(window.google_jobrunner) == 'undefined') {

// Adsense 被阻止,将其他内容加载到容器中

}

如果这样做,最好使用 CSS 设置容器的高度。

您可以通过选择“打开可阻止的项目”来检查 Adblock Plus 在 Firefox 中阻止的内容。

Adblock Plus 还会阻止文件名中具有常见广告尺寸的图像,例如“whatever_468x60.png”可能会被阻止。

于 2012-12-23T07:52:39.553 回答
-1

既然您用 PHP 标记了您的问题,我将戴上 php 眼镜回答:问题是广告拦截是客户端的,通过 php 添加 div 是服务器端。因此,您首先必须知道客户端会发生什么,然后编写您的代码 - 但这不起作用。您可能仍然可以通过 AJAX 请求执行此操作——但这​​意味着您将首先发送页面而不知道是否激活了 adblock……</p>

干杯,±...</p>

于 2012-12-14T12:43:44.557 回答