我试图添加一个标签(自定义javascript)到我的谷歌标签管理器,但我得到"错误在第12行,字符5:解析错误。期望主表达式。我能得到帮助来纠正我的代码吗?
<script>
var x=document.getElementById("ad"),
z=window.getComputedStyle(x,null),
y=z.getPropertyValue("display");
function showAdblockAlert()
{alert("You're missing ads, therefore turn off your AD-blocker!")
}function adBlockNotDetected()
{alert("Thank you for not using AD-blocker");
console.log
("no ad-blocker")}console.log(y);
"none",
==y?showAdblockAlert():adBlockNotDetected();
</script>
这段代码很奇怪。它结合了一些基本错误和高级技术,如果你可以将其称为三进制或在var中使用逗号。
无论如何,你的错误很可能是由于拙劣的复制。我认为"none",==
部分是从别的地方来的。
来,试试这个:
var x = document.getElementById("ad"),
z = window.getComputedStyle(x, null),
y = z.getPropertyValue("display");
function showAdblockAlert() {
alert("You're missing ads, therefore turn off your AD-blocker!")
} function adBlockNotDetected() {
alert("Thank you for not using AD-blocker");
console.log("no ad-blocker")
}
console.log(y);
y ? showAdblockAlert() : adBlockNotDetected();
但是,您应该知道,生产中的警报是使您的站点以某种方式被列入黑名单的一种非常好的方法。
此外,像这样声明全局变量是一个非常糟糕的主意。
你的代码不安全。它依赖于getComputedStyle和其他元素。否则会抛出错误。
最后,函数的使用似乎有点过度。如果将三进制与普通if交换,则不需要使用它们,从而使代码更具可读性。