Firefox "Ошибка загрузки script" загрузка Google Analytics в FF2

В проекте, над которым я работаю, используется обработчик события window.onerror, чтобы сообщать о проблемах пользователей. Я заметил одного пользователя, который просто не может загрузить Google Analytics script. Наш сайт не видит большого количества трафика, поэтому я не уверен, насколько это широко распространено, но пока это похоже на одного пользователя.

Его пользовательский агент: "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.8.1.17). Gecko/20080829 Firefox/2.0.0.17".
Сообщение об ошибке, которое Firefox дает: "Ошибка загрузки script".

Дополнительная заметка: сайт ссылается на несколько других файлов javascript. Однако ссылка на аналитику является единственной для внешнего домена и единственной ссылкой script в нижней части страницы, непосредственно перед закрывающим тегом body.

Кто-нибудь еще сталкивается с этим, или имеет какое-либо представление о том, что может быть проблемой? Спасибо!

Ответы

Ответ 1

Эта проблема возникает, когда вы оставляете страницу в Firefox до того, как все сценарии завершили загрузку. Поэтому я предполагаю, что безопасно игнорировать ошибку.

Вы не видите эту ошибку в консоли ошибок Firefox, но можете сделать ее видимой, привязывая предупреждение к событию window.onerror. Затем вы сможете увидеть окно предупреждения в течение небольшого промежутка времени и получить следующую ошибку в консоли ошибок:

[11:35:57.428] uncaught exception: [Exception... "prompt aborted by user"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: resource:///components/nsPrompter.js :: openTabPrompt :: line 462"  data: no]

Я использую следующую проверку, чтобы игнорировать эту ошибку в моем обработчике onerror:

if (navigator.userAgent.search('Firefox') != -1 && message === 'Error loading script') {
    // Firefox generates this error when leaving a page before all scripts have finished loading
    return;
}

Ответ 2

Это довольно случайное предположение, но мне интересно, использует ли пользователь надстройку типа NoScript для управления выполнением script и не позволяет запускать сценарии из Google Analytics. Я знаю, что это возможно, потому что это то, что я делаю:) Я не знаю, будет ли это отображаться как ошибка, которую вы видите.

Ответ 3

У меня есть сайт с более чем 80 страницами, в котором используется захват ошибок JavaScript. Мой сайт обслуживает более 2000 страниц в день, и я получаю около десяти ошибок при загрузке script "каждый день из браузеров Firefox. Это начинает действительно раздражать меня, и я убеждаюсь, что это проблема в Firefox.

Я могу отказаться от предложения NOSCRIPT, потому что script загружается в начале моих страниц, где нет тегов NOSCRIPT.

Я могу отказаться от предложения 'external domain', потому что у меня есть два сайта, которые страдают этой проблемой, и в обоих случаях файлы библиотеки JS расположены на собственном сервере сайтов.

Я тщательно проверил каждый файл библиотеки и веб-страницу с помощью JavaScript Lint, и я обнаружил ошибки сценариев и сомнительные методы создания сценариев. Все эти проблемы были исправлены, но это не вызвало какой-либо проблемы с проблемой "Ошибка загрузки script".

Мои страницы загружают несколько файлов библиотеки JavaScript, у которых нет этой проблемы, и единственное различие - размер файлов. Большинство файлов находятся под 5 КБ, но файл проблемы составляет 17 КБ.

Может ли проблема с файлом библиотеки?

Aagh!

Ответ 4

У нас была такая же проблема, и после изучения наших журналов CDN мы обнаружили, что Firefox запускает событие onerror, когда script возвращается с HTTP-статусом "304 Not Modified", поэтому кэш попал. Фактически, Firefox (протестированный с Firefox 12 в момент написания этой статьи), похоже, вызывает событие onerror для всех статусов HTTP, кроме "200 Ok". Другие браузеры по-разному вели себя в нашем эксперименте: Chrome (19) запускал onerror только по запросу "407 Proxy Authentication Required" и Opera (12) на 100, 101, 204, 4xx и 5xx.

Ответ 5

Я уверен, что это долго разрешено. Но любому, кто натыкается на эту страницу: эта ошибка запускается firefox, когда внешний script не загружается (легко найти код, который вызывает это в источнике код). Мы ловили эти ошибки на нашем сайте, и оказалось, что мы возвращаем 404s для script, поэтому я предлагаю посмотреть ваши журналы как один из возможных источников этой ошибки.