Автоматическая обратная связь при ошибке JavaScript - PullRequest
14 голосов
/ 13 февраля 2009

Есть ли способ получить автоматическую обратную связь, если при запуске JavaScript на стороне клиента возникает ошибка (даже синтаксические)?

Я думал о чем-то вроде этого:

<script src="debugger.js"></script>
<script>
    // some script with an error in it
</script>

И каждый раз, когда отладчик замечает ошибку, он отправляет отзыв на сервер.

Ответы [ 6 ]

16 голосов
/ 13 февраля 2009

РЕДАКТИРОВАТЬ: я неправильно понял ваш вопрос, это должно работать:

Также обратите внимание, что это должно идти перед любым JavaScript, который может вызвать ошибки.

window.onerror = function(msg,u,l)
{
    txt ="Error: " + msg + "\n";
    txt+="URL: " + u + "\n";
    txt+="Line: " + l + "\n\n";
    //Insert AJAX call that passes data (txt) to server-side script
    return true;
};

Что касается синтаксических ошибок, вам не повезло. Javascript просто умирает при синтаксической ошибке. Нет никакого способа справиться с этим вообще.

9 голосов
/ 13 февраля 2009

Один из методов - использовать Ajax для регистрации ошибок JavaScript

Каждая ошибка JavaScript может быть перехвачена в событии window.onerror. Мы можем вернуть истину или ложь, чтобы мы могли выбрать, увидит ли пользователь нормальное диалоговое окно с ошибкой JavaScript. Этот сценарий в очень маловероятном случае ошибки javascript соберет информацию об ошибке и отправит httprequest на страницу, которая будет регистрировать ошибку javascript в базе данных.

4 голосов
/ 13 февраля 2009

Я не уверен насчет синтаксических ошибок, но можно отследить ошибки js с помощью события window.onerror. Поиск по «входу ошибок в JavaScript» в Google дает вам много результатов ...

Регистрация ошибок JavaScript в ASP.NET: http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (К сожалению ссылка на скачивание в посте не работает).

Регистрация ошибок JavaScript на стороне клиента на сервере: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx

Уведомления об ошибках JavaScript: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx

0 голосов
/ 16 апреля 2013

Самым простым способом для меня было установить это приложение из SiteApps Marketplace:

http://siteapps.com/app/log_javascript_errors_with_ga-181

После того, как вы установили тег платформы, вы можете установить множество приложений, и приведенное выше очень полезно для меня. Я использую его на 14 разработанных мной веб-сайтах и ​​могу отслеживать ошибки JavaScript в Google Analytics.

Надеюсь, это поможет.

Leandro

0 голосов
/ 13 февраля 2009

Вероятно, лучше всего отправить только один отчет об ошибке на страницу. Если вы получаете сообщение об ошибке на повторяющемся таймере или сам AJAX рекурсивно вызывает ошибку, вы можете в конечном итоге заполнить свой журнал ненужным мусором.

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

  • прокси-серверов безопасности с вашим кодом
  • скрипты с заблокированных сайтов
  • неважные ошибки браузера Chrome из расширений
  • IE Mobile, худший браузер в мире
0 голосов
/ 13 февраля 2009

window.onerror = MyFunction (msg, url, line);

появляется всплывающее окно с информацией об ошибке, типом браузера (например, navigator.userAgent) и т. Д., Все в полях, помеченных как READONLY, и предлагающих пользователю отправить их.

У нас есть флажок «Больше не показывать», который хранится в файле cookie сеанса - поэтому, если они продолжают получать ошибки, можно отключить всплывающее окно.

Несмотря на то, что мы думали, что это было «очень круто», мы получаем очень мало отчетов - и я не уверен, что это потому, что мы приближаемся к нулю ошибок времени выполнения!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...