Javascript 如何仅在启用adblock时显示ad后面的背景?

Javascript 如何仅在启用adblock时显示ad后面的背景?,javascript,css,adblock,Javascript,Css,Adblock,我试图在通常300x250广告的位置显示背景图像,但仅当adblock阻止广告时才显示。有人知道如何做到这一点吗?使用div会导致在加载广告之前显示背景,这是我不希望看到的 谢谢因为你用PHP标记了你的问题,我将用PHP眼镜回答: 问题在于,adblocking是客户端的,通过php添加div是服务器端的。因此,您首先必须知道客户端ans上发生了什么,然后编写代码——但这行不通。您可能仍然可以通过AJAX请求执行此操作,但这意味着您将首先发送页面,而不知道adblock是否被激活 干杯,±…由于

我试图在通常300x250广告的位置显示背景图像,但仅当adblock阻止广告时才显示。有人知道如何做到这一点吗?使用div会导致在加载广告之前显示背景,这是我不希望看到的


谢谢

因为你用PHP标记了你的问题,我将用PHP眼镜回答: 问题在于,adblocking是客户端的,通过php添加div是服务器端的。因此,您首先必须知道客户端ans上发生了什么,然后编写代码——但这行不通。您可能仍然可以通过AJAX请求执行此操作,但这意味着您将首先发送页面,而不知道adblock是否被激活


干杯,±…

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

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

.adblocked{background:url(“img/no-ad.jpg”)左上角不重复;}
如果(adLibraryName的类型==“未定义”){
//广告内容未加载
document.getElementById(“ad”).className+=“adblocked”;
}

正如MAXIM所说,这与PHP无关,您无法让它与PHP一起工作,因为PHP在服务器上运行,不知道是否安装了广告阻塞。简单地说,所有这些都是客户端的问题。

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

if(typeof(window.google_jobrunner)==“未定义”){

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

}

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

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


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

它与php有什么关系?+1;通过JS检查广告是否已加载,插入CSS类是一个很好的解决方案。您还可以检查是否创建了特定元素,或者是否可以从某个ad服务器加载文件。一些网站使用类似的技术来显示“请禁用AdBlock”横幅。另外,
elem.classList.add(“adblocked”)将在现代浏览器中工作;请看:嗯-thänx对我的“答案”进行评分-并不能真正帮助任何人,也不能激励我-但thänx无论如何…正如我上面提到的,这个问题首先被标记为PHP问题,所以我尝试给它一个PHP答案…不管怎样。这个问题没有有用的PHP答案。如果你不确定这个问题的意思,试着先在评论中问一下。