GTM JavaScript编译器错误ECMASCRIPT6

时间:2018-11-14 14:48:59

标签: javascript google-tag-manager typeform

我的问题是关于我使用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>

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

1 个答案:

答案 0 :(得分:0)

zip// type of dict will be [String: [String]] let dict = Dictionary(uniqueKeysWithValues: zip(questions, answers)) 是声明仅在ES6(JavaScript版本)或更高版本中可用的变量的不同方法。我今天使用箭头功能的另一个ES6功能时发现,Google跟踪代码管理器不支持ES6。

对于您而言,将const关键字或let的任何实例更改为关键字const可能会解决您的问题。

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

另一个技巧是将代码粘贴到BabelJS的在线版本中,并在使用ES2015复选框时查看其内容。 BabelJS是一个编译器/编译器,它采用将来的语法JS并将其转换为旧版本的语法。例如,请参见吐出的代码之前和之后:

原始ES6代码(使用箭头功能,const和let):

let

从BabelJS到ES2015 / ES5的输出:

var