javascript - GTM JavaScript 编译器错误 ECMASCRIPT6

标签 javascript google-tag-manager typeform

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

JavaScript Compiler Error Typeform Tag
Error at line 3, character 1: This language feature is only supported for ECMASCRIPT6 mode or better: const declaration.

第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>

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

最佳答案

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

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

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

另一个技巧是将您的代码粘贴到 BabelJS 的在线版本中,然后在您使用 ES2015 复选框时查看它会吐出什么。 BabelJS 是一个转译器/编译器,它采用 future 语法 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;
});

关于javascript - GTM JavaScript 编译器错误 ECMASCRIPT6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53302907/

相关文章:

javascript - 在单击任何对象之前,Angular 2 不会更新

javascript - Google 跟踪代码管理器自定义变量

javascript - 点击 <a> 中的 <strong> 标签时,谷歌标签不会触发

javascript - Google 跟踪代码管理器 - dataLayer 具有先前的值

php - 使用 Typeform 制作产品订单并使用 PapPal 付款

firebase - 安全的 Firebase 网络钩子(Hook)

javascript - 我想使用 jquery 在表中的每一行旁边动态添加一个复选框

javascript - 从 url 加载的多个 GeoJSon 标记未显示

javascript - 前面有特定字符串时的匹配字符