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 声明的主要内容,如果未能解决你的问题,请参考以下文章

ec.js 可以用服务器端 gtm 代理吗?

GTM 在模板中发现无效的 HTML、CSS 或 JavaScript

如何在 GTM 中使用 javascript 替换 dataLayer 中的参数名称

错误:“在此上下文中仅支持原始类型或枚举类型”

Next.js - 错误:仅支持绝对网址

会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 74 错误与 ChromeDriver Chrome 使用 Selenium