GTM \
2024-03-17 10:04:58
修复 GTM "此语言特性仅适用于 ECMASCRIPT6 模式" 错误的终极指南
作为经验丰富的程序员和技术作家,我遇到了许多开发人员在使用 Google 跟踪代码管理器 (GTM) 时遇到的常见错误,即 "此语言特性仅适用于 ECMASCRIPT6 模式"。该错误可能会令人生畏,但解决起来相对简单。在这篇文章中,我将分享一个分步指南,向你展示如何通过以下步骤修复此错误:
1. 理解问题
此错误表明你的 GTM 代码试图在不兼容的 JavaScript 模式下运行。ECMASCRIPT6 (ES6) 是 JavaScript 的一个较新版本,支持现代语法特性。当你的代码包含 ES6 语法时,但 GTM 却在旧的 JavaScript 模式下运行,就会出现此错误。
2. 调整代码以匹配 ECMASCRIPT6 模式
要解决此问题,你需要将代码修改为与 ES6 模式兼容。这包括使用 ES6 语法,例如箭头函数、解构和扩展运算符。有关 ES6 语法的更多详细信息,请参阅 MDN 文档。
3. 在 GTM 中启用 ECMASCRIPT6 模式
GTM 为你提供了启用 ES6 模式的功能。要启用它,请按照以下步骤操作:
- 打开 GTM 界面。
- 点击左侧导航栏中的 "变量" 标签。
- 单击 "新建" 按钮。
- 在 "变量名称" 字段中输入 "ecmascriptMode"。
- 在 "变量值" 字段中输入 "es6"。
- 点击 "保存" 按钮。
4. 在代码中使用 ECMASCRIPT6 语法
启用 ES6 模式后,你可以在代码中使用 ES6 语法。例如,你可以将以下代码:
window.sbHooks.addAction('sbCoreState::CreateBets/success', (data, response) => {
修改为:
window.sbHooks.addAction('sbCoreState::CreateBets/success', function(data, response) {
5. 测试你的代码
修改代码并启用 ES6 模式后,重新发布你的 GTM 容器并检查错误是否消失。如果错误已解决,那么恭喜你!你的代码现在将在 ES6 模式下正常运行。
代码示例:
以下是一个修改后的代码示例,使其与 ES6 模式兼容:
<script>
if (typeof window.sbHooks === 'object') {
// отправляем данные о достижении цели (размещение ставки/прогноза) в Яндекс Метрику
window.sbHooks.addAction('sbCoreState::CreateBets/success', function(data, response) {
//data.express_bet - сумма экспресса, если это значение есть - то ставка экспресс
//data.express_tip - текст экспресса
//добавлен экспресс с прогнозом или без
if (
typeof data.express_bet !== 'undefined' &&
typeof response.body.ids !== 'undefined' &&
Array.isArray(response.body.ids) &&
response.body.ids.length > 0
) {
if (typeof yaCounter47035968 != 'undefined') {
yaCounter47035968.reachGoal('AddTipExpress');
if (data.express_tip.length > 0) {
yaCounter47035968.reachGoal('AddReviews');
}
}
}
// Если это несколько ставок, то переберем их и посмотрим есть ли текст
if (
typeof data.express_bet == 'undefined' &&
data.bets.length > 0
) {
for (var i = 0; i <= data.bets.length - 1; i++) {
var tip_text = data.bets[i].tip_text;
if (typeof yaCounter47035968 != 'undefined') {
yaCounter47035968.reachGoal('AddTipOrdinary');
if (typeof tip_text !== 'undefined') {
yaCounter47035968.reachGoal('AddReviews');
}
}
}
}
});
}
</script>
结论:
通过遵循这些步骤,你可以轻松修复 GTM 中的 "此语言特性仅适用于 ECMASCRIPT6 模式" 错误。记住,在编码时要始终保持最新,并利用 GTM 提供的强大功能来优化你的网站性能。
常见问题解答:
-
为什么我会收到 "此语言特性仅适用于 ECMASCRIPT6 模式" 错误?
- 因为你的 GTM 代码包含 ES6 语法,但 GTM 却在旧的 JavaScript 模式下运行。
-
如何启用 ES6 模式?
- 请按照本文中第 3 步中的步骤进行操作。
-
在代码中如何使用 ES6 语法?
- 修改代码以使用箭头函数、解构和扩展运算符等 ES6 特性。
-
修改代码后如何测试它?
- 重新发布你的 GTM 容器并检查错误是否消失。
-
我在启用 ES6 模式后仍然遇到此错误。我该怎么办?
- 请检查你的代码是否存在语法错误或与其他库的冲突。