Google 跟踪代码管理器中出现错误:此语言功能仅支持 ECMASCRIPT6 模式或更好模式

问题描述 投票:0回答:2

我在 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));
                
            }
        })
    })
google-tag-manager
2个回答
7
投票

这正是错误消息所说的意思,即您不能在大多数 GTM 中使用 ES6 功能,例如 const 关键字或箭头函数(自定义模板支持某些 ES6 功能,这对您没有帮助,因为模板无法操作添加表单字段等的 DOM)

如果您更换,解决方案应该很简单

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

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

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

更传统的方法是将匿名函数直接分配给变量(并且之后可能会意外覆盖它)。


0
投票

您可以只使用转换器,例如https://jstool.gitlab.io/babel-es6-to-es5/

© www.soinside.com 2019 - 2024. All rights reserved.