检查document.getElementById是否不存在?

时间:2019-03-30 19:15:37

标签: javascript

我一直在这里查看教程:

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.');
}

2 个答案:

答案 0 :(得分: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进行比较。

要完全确定,您可能需要检查广告是否真正展示。您可以使用How to tell if a DOM element is visible in the current viewport?

在您的原始代码中,您也可以使用!!进行确认。

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

答案 1 :(得分:1)

如果您要测试某事物的反义词是否正确,只需在其前面放置not(!)符号即可。

if(!document.getElementById('APvpIfBTxbcQ')){
  alert('Ads are being blocked.');
}