Ответ 1
спецификация HTML5 требует, чтобы ошибка синтаксического анализа заставляла браузер:
... сообщите об ошибке для script, с проблемной позицией (номер строки и номер столбца), используя глобальный объект... как цель.
Где " сообщить об ошибке" включает в себя шаги
- Пусть сообщение представляет собой строку, определяющую пользовательский агент, описывающую ошибку полезным образом.
...
Пусть событие будет новым доверенным объектом
ErrorEvent
, который не пузырится, но может быть отменен и имеет имя событияerror
.Инициализировать атрибут события
message
для сообщения....
- Событие отправки в цель.
Таким образом, любой браузер, совместимый с HTML5, будет сообщать о событиях времени синтаксического разбора на window
, которые включают атрибут message
, установленный в строку, определенную пользователем, определяющую ошибку в полезной манере. " Любая версия браузера, которая этого не делает, еще не совместима с HTML5 в этом отношении.
Ранее (на момент написания этого вопроса) window.onerror
предоставил информацию, которая не была предоставлена window.addEventListener("error")
. Если вы должны использовать старую версию Firefox, безопасно использовать window.onerror
:
// Example 1: // Prevent error dialogs from displaying -which is the window normal // behavior- by overriding the default event handler for error events that // go to the window. window.onerror = null; // Example 2: var gOldOnError = window.onerror; // Override previous handler. window.onerror = function myErrorHandler(errorMsg, url, lineNumber) { if (gOldOnError) // Call previous handler. return gOldOnError(errorMsg, url, lineNumber); // Just let default handler run. return false; }