我的问题是关于我使用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>
请分享您的想法或任何建议,我们将不胜感激! -谢谢你。
答案 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