修复Google Tag Manager自定义JavaScript代码解析错误求助
修正Google Tag Manager自定义JS标签的语法错误
错误原因
报错核心是第12行的比较表达式语法无效:"none", ==y 缺少左侧操作数且多了逗号,导致解析失败。同时代码存在格式混乱和潜在的空值报错风险。
修正后的代码
var x = document.getElementById("ad"); // 先判断目标元素是否存在,避免后续代码报错 if (x) { var z = window.getComputedStyle(x, null); var 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 === "none" ? showAdblockAlert() : adBlockNotDetected(); } else { // 可选:元素不存在时的提示 console.log("Ad target element not found"); }
关键修正点
- 修复比较逻辑:把错误的
"none", ==y改为标准全等比较y === "none" - 增加元素存在判断:防止
#ad元素不存在时,调用getComputedStyle抛出异常 - 规整代码格式:拆分过长代码行、补全分号,提升可读性和维护性
内容的提问来源于stack exchange,提问作者Linda Linda
相关产品推荐
相关产品推荐

