首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GTM JavaScript编译器错误ECMASCRIPT6

GTM JavaScript编译器错误ECMASCRIPT6
EN

Stack Overflow用户
提问于 2018-11-14 14:48:58
回答 2查看 5.3K关注 0票数 3

我的问题是,我使用JavaScript将一些表单数据从Webflow发送到Typeform。当我在中创建一个自定义html标记时,我会得到以下错误:

JavaScript编译错误类型标签 错误在第3行,字符1:此语言特性只支持ECMASCRIPT6模式或更高版本: const声明。

同样的错误发生在第4、5、6、13、14、15行。

这是我的密码:

代码语言:javascript
复制
<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>

请分享你的想法或建议,会非常感激的!-提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2020-11-05 19:55:23

constlet是声明变量的不同方法,只在ES6 (JavaScript的一个版本)或更高版本中可用。Google不支持ES6,正如我今天使用箭头函数的另一个ES6特性时发现的那样。

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

我看到您的实际问题是cookie同意,但是如果有人在GTM中遇到ES6或Ecmascript 6错误。在线搜索ES6功能,以便使用ES5进行替换。其他缩略语是ES2016 vs ES2015。别问我关于命名惯例的事,因为它太让人困惑了。

另一个窍门是将您的代码粘贴到BabelJS的在线版本中,并查看使用ES2015复选框时它会显示什么。BabelJS是一个转换程序/编译器,它采用未来的语法JS并将其转换为较旧的版本语法。例如,请参阅被吐出的前后代码:

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

代码语言:javascript
复制
window.addEventListener("load", (event) => {
  const myVariable = "text";
  let anotherVariable = 8;
});

从BabelJS输出到ES5 2015/ES5:

代码语言:javascript
复制
window.addEventListener("load", function (event) {
  var myVariable = "text";
  var anotherVariable = 8;
});
票数 3
EN

Stack Overflow用户

发布于 2022-07-24 06:36:18

我将es6代码转换为js vanilla 的旧版本,尝试以下工具:

https://es6console.com/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53302907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档