GTM 中的错误:此语言功能仅支持 ECMASCRIPT_2015 或更好的模式:const 声明
Posted
技术标签:
【中文标题】GTM 中的错误:此语言功能仅支持 ECMASCRIPT_2015 或更好的模式:const 声明【英文标题】:Error in GTM: This language feature is only supported for ECMASCRIPT_2015 mode or better: const declaration 【发布时间】:2021-12-29 23:37:29 【问题描述】:我正在尝试解析 UTM 并将它们放入字段中,但我的脚本似乎不会在 GTM 上发布。
(脚本直接放在webflow自定义代码上即可)
var queryString = window.location.search;
console.log(queryString);
// ?utm_source=facebook&utm_medium=post&utm_campaign=webflow
var URLSearchParams_wb = new URLSearchParams(queryString);
const utmParameters = [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term"
];
for (const utm_element of utmParameters)
/* if utm_source exist */
if(URLSearchParams_wb.has(utm_element))
console.log(utm_element + " : is exist");
/* get UTM value of this utm param */
var value = URLSearchParams_wb.get(utm_element)
/* change form hidden feild to this utm url value */
$("."+utm_element).val(value);
/* end for loop */
</script>```
Any idea ?
【问题讨论】:
【参考方案1】:是的,GTM 在采用 ES6 时遇到了麻烦。 因此:
-
摆脱常量。请改用 var。
那个 jquery 片段。最好也摆脱它。您不需要依赖于生活在 GTM 中的 jquery。但它不会破坏代码。
我相信你的 for 构造也来自 es6:https://kangax.github.io/compat-table/es6/ 所以循环可能必须重写为不同的东西。我只会使用 forEach 而不是 for of。
其余的应该都不错。试一试。
【讨论】:
以上是关于GTM 中的错误:此语言功能仅支持 ECMASCRIPT_2015 或更好的模式:const 声明的主要内容,如果未能解决你的问题,请参考以下文章
GTM 在模板中发现无效的 HTML、CSS 或 JavaScript
如何在 GTM 中使用 javascript 替换 dataLayer 中的参数名称
会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 74 错误与 ChromeDriver Chrome 使用 Selenium