Как сохранить ошибки JavaScript в файле

Требуется решение для сохранения журнала ошибок JavaScript. Для автоматического тестирования любого сайта с поддержкой популярных веб-браузеров (IE, FF, Chrome).

Ответ 1

Наиболее практичным методом является поиск события onerror. try-catch - лучший способ, но вы должны знать, где в вашем коде может появиться ошибка.

Здесь используется предупреждение. Его можно заменить вызовом ajax на серверное script/приложение на стороне сервера, которое будет отвечать за ведение журнала базы данных. JavaScript сам по себе не может получить доступ к любой файловой системе - серверу или пользователю. Это только отправит информацию об ошибке. демо

window.onerror = function (msg, url, num) {
    alert("Error: " + msg + "\nURL: " + url + "\nLine: " + num);
    return true;
};
JS-made-poo();

Internet Explorer использует ActiveX, который может быть полезен в каком-то приложении регистрации. Но пользователь, вероятно, получит предупреждение при активации ActiveX.

Ответ 2

Простой/лучший способ сделать:)

В простых шагах:

  • Записывать ошибки ошибок JavaScript код.
  • Добавить запрос/ответ Ajax модуль для отправки захваченной ошибки в ваш сервер.
  • в хранилище сервера ваши ошибки Javascript для Журнал/базы данных.
  • При необходимости предоставьте функциональность для доступа к журналу удаленно.

Вход в файл на стороне клиента имеет ограничения:

  • Поддерживается только IE (с использованием объектов ActiveX)
  • Очевидно, что файлы - это хранилища на стороне клиента. Не на сервере.

Ответ 3

Я не верю, что в Javascript есть что-то, что можно было бы поддержать, поскольку Javascript не получает доступ к файловой системе клиента. Вам нужно будет создать модуль браузера, приложение со встроенным браузером или, может быть, посмотреть, можно ли построить соответствующее расширение firebug.

Ответ 4

Или собирайте ошибки в переменной JS, а затем отправляйте их на сервер для их регистрации.

Ответ 5

Самый простой способ сделать это - настроить страницу, на которую можно попасть с сообщением, и при ошибке сообщать об ошибках на эту страницу. Это требует обнаружения всех ошибок, поэтому вам нужно будет обернуть свою страницу в инструкции try { .. } catch (e) { .. }.