Skip to content
This repository has been archived by the owner on Oct 9, 2020. It is now read-only.
/ catch-js-errors Public archive

Универсальный отловщик JS ошибок

License

Notifications You must be signed in to change notification settings

webpractik/catch-js-errors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catch JS Errors

UNMAINTEINED: Use sentry

Плагин для отправки на сервер лога JS-ошибок в браузере.

Передаваемые данные:

  • Сайт, на котором возникла ошибка
  • Сообщение об ошибке
  • Файл с ошибкой
  • Браузер пользователя
  • Версия браузера
  • Операционная система пользователя

Установка:

Для работы пакетного менеджера на сервере должен быть установлен Node JS. Устанавливается одной простой коммандой в консоли:

npm install catch-js-errors

Подключение:

Подключаем его в начале страницы до вызова всех скриптов (Путь к файлу у Вас может отличаться, проверьте)

<script src="/local/static/node_modules/catch-js-errors/index.js" type="text/javascript">

Если сайт на CMS 1С-Битрикс, то, для того, чтобы скрипт не переносился вниз страницы со всеми остальными скриптами, ему нужно добавить параметр

data-skip-moving="true"

В таком случае, вызов будет выглядеть так:

<script src="/local/static/node_modules/catch-js-errors/index.js" data-skip-moving="true" type="text/javascript">

Детали:

jQuery не используется, поэтому скрипт можно спокойно добавлять до вызова библиотеки.

При возникновении Синтаксических ошибок (SyntaxError) скрипт, к сожалению, срабатывать не будет. В дальнейшем этот недочёт устранится.

Внутри скрипта отправки добавлен скрипт определения браузера, найденный на сайте https://yraaa.ru/scripts/opredelenie-brauzera-javascript

Помимо самого браузера, он определяет его версию и Операционную систему, через которую открывается браузер. В некоторых случаях, редко, не совсем верно определяется, типо вместо андроида он пишет, что линукс.

В данный момент ошибки отправляются на сайт "error-listener.w6p.ru" и пока этот параметр не меняется. В дальнейшем для универсальности использования этот момент доработается.

P.S.

Этим скриптом данные просто передаются на сервер. Как на сервере эти данные обрабатывать, решать Вам: записывать в лог, сохранять в файл, каким-то образом фильтровать или что-то ещё - на Ваше усмотрение. Здесь представлена только js-составляющая всего процесса.

Ещё стоит отметить, что для того, чтобы корректно принимать данные на удалённом сервере, он должен быть настроен соответствующим образом. На эту тему есть полезные статьи:

http://javascript.ru/ajax/cross-domain-scripting, http://javascript.ru/ajax/cross-origin-2

About

Универсальный отловщик JS ошибок

Resources

License

Stars

Watchers

Forks

Packages

No packages published