GTM自定义变量报Primary Expression Expected错误如何解决?
GTM变量报错问题修复方案
直接触发解析报错的语法问题
- 代码中使用了HTML转义格式的双引号
"和小于号<,JS解析器无法识别这类HTML转义符,需要替换为普通双引号"和小于号< - 函数末尾多余的
);属于冗余语法,普通函数仅需}闭合即可 - GTM自定义JavaScript变量要求代码必须返回匿名函数,你声明的命名函数
function VIN()不符合GTM变量规范,需要去掉函数名
额外逻辑错误(语法修复后仍无法正确取值的问题)
document.getElementsByClassName()返回的是HTML元素集合,不能直接对整个集合调用.innerText,需要去掉该属性,遍历集合时再对单个元素取值- 建议给
targetVIN设置默认空值,避免匹配不到对应元素时返回undefined触发其他异常
修复后的完整代码
function() { let vins = document.getElementsByClassName("xyzClass"); let targetVIN = ""; for (var i = 0; i < vins.length; i++) { if (vins[i].innerText === "VIN") { targetVIN = vins[i].nextSibling.innerText; } } return targetVIN; }
内容的提问来源于stack exchange,提问作者Stephen Kaufman
相关产品推荐
相关产品推荐

