Я использую текущий код отслеживания Google Analytics, и в Firefox 59 я получаю эту ошибку в консоли:
unreachable code after return statement
На этом javascript: https://www.googletagmanager.com/gtag/js?id=UA-my-tracking-code:formatted
Поскольку эта проблема не кажется доступной для Google, поэтому кажется, что у других нет этой проблемы, я предполагаю, что это я делаю что-то не так. Но что это могло быть?
Я помещаю фрагмент в <head>, как сказано в документации:
<!DOCTYPE html>
<html>
<head>
<title>some title</title>
<meta charset = "UTF-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src = "https://www.googletagmanager.com/gtag/js?id=UA-my-tracking-code"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-my-tracking-code');
</script>
</head>
<body>
blah blah
</body>
</html>
@gurtfrobe - нет, извини, не знал :(
То же самое здесь сказано firefox 60.0.1. Хотя Хром молчит :)
Я считаю, что это всего лишь предупреждение разработчика - код JavaScript и аналитика работают нормально.
@TadejP - да, это действительно так, как и большинство вещей, которые можно найти в консоли :) Журналы и предупреждения. Однако лично я не жду предупреждения в случае хорошо зарекомендовавшей себя готовой к производству библиотеки, созданной одним из гигантов. Мне достаточно моих собственных предупреждений, сгенерированных моими собственными библиотеками, находящимися в стадии разработки :) Но да - в остальном вроде работает нормально.
То же предупреждение с firefox 60.0.2 Довольно болезненно. Совершенно согласен с Конрадосом (+1)
То же самое с FF 60.0b2 Dev Edition. Хотя вроде работает нормально. Мне не удалось найти дополнительную информацию по этой теме.
Кстати, это <head>, а не <header>, тем не менее, он у вас в правильном элементе (<head>)
@Brandito - поправил, спасибо.

Это нет твоя вина. Если вы измените код с помощью Firefox, его можно найти здесь:
Gc = function (a, b, c) {
var d = a.split('.');
var e = function (a, b) {
for (var c = 0; void 0 !== a && c < d.length; c++) {
if (null === a) return !1;
a = a[d[c]]
}
return void 0 !== a || 1 < c ? a : b.length ? e(Hc(b.pop()), b) : Ic(d)
};
return e(Cc.eventModel, [ // <= True return value
b,
c
]);
return Ic(d) // <= This can never be reached!
},
Чтобы уточнить код:
{} в нижнем левом углу этой панели, чтобы сделать его более красивым. Однако ссылка будет потеряна.Firefox правильно указывает на ошибку, функция Ic(d) никогда не будет достигнута, поскольку функция возвращается раньше. Похоже на ошибку Диспетчера тегов Google, однако, не изучив исходный код, мы не можем определить серьезность.
Спасибо. Да, я тоже в конце концов нашел эту конкретную причину, хотя это не решает проблему :) Тем не менее, вы выполнили свой анализ, и, похоже, это лучшее, что мы можем сделать в любом случае (кроме, возможно, сообщения об ошибке в Google), поэтому я отметил это как ответ. Еще раз спасибо!
Я думаю, вы только проголосовали за мой ответ, но не отметили его как «ответ». Это будет зеленая галочка «✓».
Есть обновления по этому поводу? Я до сих пор получаю эту ошибку в консоли.
Не совсем @ JAT86 ... не стесняйтесь сообщать об этой ошибке на официальных каналах Google.
Мой ОКР этого не допустит. Предупреждения так же плохи, как ошибки для моего мозга ... lol
Ответ, предоставленный @Me, заставил меня выполнить следующее:
<script async src = "https://www.googletagmanager.com/gtag/js?id = {Google Analytics Id here}"></script> и возьмите копию JavaScript.Предупреждение исчезло, и пока все вроде работает - никаких дополнительных или новых ошибок / предупреждений в консоли и данных аналитики / отслеживания все еще не поступает.
Это явно не идеальное решение - мне придется продолжать отслеживать это, пока либо а) Google не исправит свой код (который, кстати, полностью пропускает точки с запятой - я сомневаюсь, что это приблизилось бы к прохождению линтера) или b ) Google вносит другие изменения в код, в результате чего мой не работает или моя Аналитика перестает составлять отчеты.
Я бы больше боялся последнего.
@Brandito Я согласен, но первая строка рассматриваемого файла - это // Copyright 2012 Google Inc. All rights reserved. ... так что я не затаив дыхание, ожидая, что Google исправит это. И у меня есть это прямо сейчас в Angular SPA, который требует некоторого дополнительного кода для отслеживания изменений страниц, но, как я уже сказал, сейчас все отслеживается и работает нормально. Ваше здоровье!
Проблема возникает не со всеми версиями кода отслеживания.
Этот фрагмент кода, использующий gtag, вызывает предупреждения unreachable code after return statement (в Firefox):
<script async src = "https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-YY"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXX-YY');
</script>
Источник: раздел Админ в Google Analytics: Admin › Tracking Info › Tracking Code, последнее обновление Бог знает когда.
Этот фрагмент кода, использующий analytics.js, не вызывает ошибку:
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXX-YY', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
Взято из официальной документации: Добавление analytics.js на ваш сайт (второй пример кода), «Последнее обновление 30 июля 2018 г.»
Не забудьте обновить XXXXXX-YY, указав свой собственный идентификатор собственности.
Какие отличия?
В разделе администратора:
Global Site Tag (gtag.js) and Google Tag Manager are the recommended tracking methods for new implementations. Additional implementation options are also available including analytics.js and the Measurement Protocol. Learn more about additional tracking methods.
Use analytics.js
The gtag.js library is the recommended tracking code for new implementations. However, there may be cases where you would prefer to use analytics.js (e.g., your site already makes use of analytics.js.) See the developer documentation for more information.
У меня то же самое, вы нашли исправление?