我试图在通常是 300x250 广告的地方显示背景图片,但前提是 adblock 阻止了广告。任何人都知道如何做到这一点?使用 div 会导致背景在我不想要的广告加载之前显示。
谢谢
我试图在通常是 300x250 广告的地方显示背景图片,但前提是 adblock 阻止了广告。任何人都知道如何做到这一点?使用 div 会导致背景在我不想要的广告加载之前显示。
谢谢
由于访问者的计算机上安装了 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 在服务器上运行并且不知道是否安装了广告拦截。简而言之,所有这些都是客户端问题。
检查 Adsense 是否被阻止,从而将替代内容加载到广告容器中。
if (typeof(window.google_jobrunner) == 'undefined') {
// Adsense 被阻止,将其他内容加载到容器中
}
如果这样做,最好使用 CSS 设置容器的高度。
您可以通过选择“打开可阻止的项目”来检查 Adblock Plus 在 Firefox 中阻止的内容。
Adblock Plus 还会阻止文件名中具有常见广告尺寸的图像,例如“whatever_468x60.png”可能会被阻止。
既然您用 PHP 标记了您的问题,我将戴上 php 眼镜回答:问题是广告拦截是客户端的,通过 php 添加 div 是服务器端。因此,您首先必须知道客户端会发生什么,然后编写您的代码 - 但这不起作用。您可能仍然可以通过 AJAX 请求执行此操作——但这意味着您将首先发送页面而不知道是否激活了 adblock……</p>
干杯,±...</p>