![](/img/trans.png)
[英]GTM, Object Description Error? Only supported for ECMASCRIPT6 mode?
[英]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>
請分享您的想法或任何建議,將不勝感激。 - 提前謝謝你
const
和let
是聲明僅在 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試試這個工具:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.