Назначение функции для window.onerror
кажется довольно простым способом начать обработку ошибок в коде на странице. Однако важно убедиться, что вы не перезаписываете ранее существующий обработчик ошибок, поэтому обычно рекомендуется сохранять ссылку на предыдущее значение и вызывать его как часть вашей новой функции. В качестве примера:
var old_onerror = window.onerror;
window.onerror = function() {
// do something
if (old_onerror) {
old_onerror();
}
};
Большинство документации/постов в блогах/и т.д., которые я могу найти в Интернете, рекомендует делать что-то подобное. Почему они не рекомендуют добавлять обработчик событий для события 'error'
? Это позволяет вызывать несколько функций при запуске одного из этих событий и не требует неловкого обслуживания ссылок на другие обработчики ошибок.
window.addEventListener('error', function() {/* do something */});
Редактировать: я рассмотрел следующие стандартные рекомендации по этому вопросу, но событие error
в window
представляется довольно особым случаем (см., Например, явное отсутствие его поддержки в JQuery (найдите на этой странице "onerror")). Я специально ищу понимание того, почему onerror
является особым случаем.