Google标签管理器中的错误:该语言功能仅支持ECMASCRIPT6或更好的模式



我在Google标签管理器中得到以下错误信息:

错误提示3,字符13:此语言特性仅支持ECMASCRIPT6模式或更高版本:const声明。

错误提示3,字符32:此语言特性仅支持ECMASCRIPT6模式或更高版本:箭头功能。

添加HTML片段标签

<script>
window.addEventListener("load", function () {
const URLToArray = url => {
var request = {};
var pairs = url.substring(url.indexOf('?') + 1).split('&');
for (var i = 0; i < pairs.length; i++) {
if (!pairs[i])
continue;a
var pair = pairs[i].split('=');
request[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
}
return request;
}
$(document).on("submit", "form", function (ev) {
var params = URLToArray(window.location.href)
if (params) {
$('<input>').attr({
type: 'hidden',
name: 'field[2]',
value: params['utm_source']
}).appendTo($(this));
$('<input>').attr({
type: 'hidden',
name: 'field[3]',
value: params['utm_medium']
}).appendTo($(this));
$('<input>').attr({
type: 'hidden',
name: 'field[4]',
value: params['utm_campaign']
}).appendTo($(this));
$('<input>').attr({
type: 'hidden',
name: 'field[5]',
value: params['utm_term']
}).appendTo($(this));                   

$('<input>').attr({
type: 'hidden',
name: 'field[6]',
value: params['utm_content']
}).appendTo($(this));

}
})
})

这就是错误信息所说的,也就是说你不能在大多数GTM中使用ES6特性,如const关键字或箭头函数(一些ES6特性在自定义模板中得到支持,这对你没有帮助,因为模板不能操纵DOM来添加表单字段等)

解决方案应该很简单,如果你替换

const URLToArray = url => { 
// function body
}

var URLToArray = function() {
// function body
}

箭头函数表达式创建了一个名为url的函数,然后将其赋值给一个变量(它是一个常量,这意味着变量名不能重新赋值)。

更传统的方法是将一个匿名函数直接赋值给变量(之后可能会意外地覆盖它)。

最新更新