簡體   English   中英

GTM JavaScript 編譯器錯誤 ECMASCRIPT6

[英]GTM JavaScript Compiler Error ECMASCRIPT6

我的問題是關於我使用 JavaScript 將一些表單數據從 Webflow 發送到 Typeform。 當我在 Google Tagmanager 中創建 custom-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>

請分享您的想法或任何建議,將不勝感激。 - 提前謝謝你

constlet是聲明僅在 ES6(JavaScript 的一個版本)或更高版本中可用的變量的不同方式。 Google Tag Manager 不支持 ES6,因為我今天在使用箭頭函數的另一個 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;
});

我將 es6 代碼轉換為舊版本的 js vanilla試試這個工具:

https://es6console.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM