-3

我一直在看这里的教程:

https://www.detectadblock.com/

这是他们用来检测是否启用了 Adblock 的 Javascript:

if(document.getElementById('APvpIfBTxbcQ')){
  alert('Blocking Ads: No');
} else {
  alert('Blocking Ads: Yes');
}

如果有人没有阻止广告,我没有任何需要运行的代码。

所以,这条线对我来说基本上没用:

alert('Blocking Ads: No');

我需要改变什么来删除那部分并基本上做到这一点?

if(document.getElementById('APvpIfBTxbcQ') IS NOT SET){
  alert('Ads are being blocked.');
}
4

2 回答 2

1

如果您使用的是最新的浏览器,则可以执行以下操作:

console.log("Ads blocked: " + (document.querySelector("#ad-id") === null));
console.log("Ads blocked: " + (document.querySelector("#ad-id-2") === null));
<div id="ad-id">Hi</div>

在上面的代码中,ad-id-2不存在。因此,您基本上可以将其与null.

为了完全确定,您可能需要检查广告是否真的在展示。您可以使用如何判断 DOM 元素在当前视口中是否可见?

在您的原始代码中,您也可以使用!!来确保。

if (!!document.getElementById('APvpIfBTxbcQ')) {
  alert('Blocking Ads: No');
} else {
  alert('Blocking Ads: Yes');
}
于 2019-03-30T19:19:19.253 回答
1

如果您想测试某事的反面是否为真,您只需将非 ( !) 符号放在它的前面。

if(!document.getElementById('APvpIfBTxbcQ')){
  alert('Ads are being blocked.');
}
于 2019-03-30T19:21:13.047 回答