google-tag-manager - Google 跟踪代码管理器中的错误:此语言功能仅支持 ECMASCRIPT6 或更好的模式
问题描述
我在 Google 跟踪代码管理器中收到以下错误消息:
Erro na linha 3, caractere 13:此语言功能仅支持 ECMASCRIPT6 或更好的模式:const 声明。
Erro na linha 3, caractere 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 的函数,然后将其分配给一个变量(它是一个常量,这意味着不能重新分配变量名)。
更传统的方法是将匿名函数直接分配给变量(之后可能会意外覆盖它)。
推荐阅读
- multithreading - Data.Binary encodeFile 似乎不是线程安全的 - 文件损坏?
- c# - 删除不必要的 NuGet 引用
- openapi - 如何在 OpenAPI 3.0 中定义具有两个可选参数的路径?
- javascript - 导出带有下拉列表的html表,使用jquery进行excel
- ios - 如何在 swift %@ 中更改部分动态字符串的颜色?
- constraint-programming - 使用 Minizinc 在表中选择匹配的原料
- html - 为什么我在 html ul li 中的链接不起作用?
- python - 使用 Python 库的多元多元回归
- cdi - 在使用 Quarkus 进行本地开发期间注入不同的 bean
- c++ - 地图计数真的很重要或只是检查存在