【问题标题】:GTM JavaScript Compiler Error ECMASCRIPT6GTM JavaScript 编译器错误 ECMASCRIPT6
【发布时间】:2018-11-14 14:48:58
【问题描述】:

我的问题是关于我使用 JavaScript 将一些表单数据从 Webflow 发送到 Typeform。当我在 Google Tagmanager 中创建自定义 html 标记时,出现此错误:

JavaScript 编译器错误类型标签
第 3 行,字符 1 处的错误:此语言功能仅支持 ECMASCRIPT6 或更好的模式:const 声明。

第 4、5、6、13、14、15 行出现同样的错误。

这是我的代码:

<script>
  $( "#formbutton" ).click(function() {
    const naam = $('#Naam-2').val();
    const email = $('#Email-2').val();
    const postcode = $('#Postcode-2').val();
    Cookies.set('naam', naam, { expires: 30 } );
    Cookies.set('email', email, { expires: 30 } );
    Cookies.set('postcode', postcode, { expires: 30 } );
  });

  var Webflow = Webflow || [];
  Webflow.push(function() {
    const naam = Cookies.get("naam");
    const email = Cookies.get("email");
    const postcode = Cookies.get("postcode");
    $('#naam').val(naam);
    $('#email').val(email);
    $('#postcode').val(postcode);
  });
</script>

请分享您的想法或任何建议,将不胜感激! - 提前谢谢你。

【问题讨论】:

  • 您好 Elien,问题就在错误消息中。将变量声明为 const 是 ES6 的一个特性,而 GTM 不支持这一点。如果您只删除 const 关键字,它应该可以工作。
  • 嗨 Elien,为什么不直接在 Webflow 中嵌入 Typeform?否则 Eike 的 cmets 似乎是要走的路。
  • 感谢@EikePierstorff,如果我删除'const',错误确实消失了。但是,cookie 不会放置在“Naam”、“E-mail”和“Postcode”的表单字段中。如何使 cookie 工作,以便我能够在下一页的 URL 中看到它?
  • 它被我们的cookie同意阻止了,代码确实在没有'const'的情况下工作。感谢您的回复@EikePierstorff 它解决了和@NicolasGrenie!

标签: javascript google-tag-manager typeform


【解决方案1】:

constlet 是声明变量的不同方式,仅在 ES6(JavaScript 版本)或更高版本中可用。我今天在使用箭头函数的另一个 ES6 特性时发现,Google 跟踪代码管理器不支持 ES6。

在您的情况下,将 const 关键字或 let 的任何实例更改为关键字 var 可能会解决您的问题。

我看到您的实际问题是 cookie 同意,但如果有人在 GTM 中遇到 ES6 或 Ecmascript 6 错误。在线搜索 ES6 功能以使用 ES5 替换。其他首字母缩略词是 ES2016 与 ES2015。不要问我关于命名约定的问题,因为它非常令人困惑。

另一个技巧是将您的代码粘贴到 BabelJS 的在线版本中,然后查看当您使用 ES2015 复选框时它会吐出什么。 BabelJS 是一个转译器/编译器,它采用未来的语法 JS 并将其转换为旧版本的语法。比如看吐出来的前后代码:

原始 ES6 代码(使用箭头函数、const 和 let):

window.addEventListener("load", (event) => {
  const myVariable = "text";
  let anotherVariable = 8;
});

从 BabelJS 输出到 ES2015/ES5:

window.addEventListener("load", function (event) {
  var myVariable = "text";
  var anotherVariable = 8;
});

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 2020-08-14
    • 1970-01-01
    相关资源
    最近更新 更多