[Содержание] [Предыдущая] [Следующая] [Индекс]

onError

Выполняет код JavaScript, когда происходит событие ошибки; то есть когда загрузка документа или изображения вызывает ошибку.

Обработчик события для объектов Image, Window
Реализовано в Navigator 3.0

Синтаксис

onError="handlerText"

Параметры

handlerText
Код JavaScript или запрос к функции JavaScript.

Описание

Событие ошибки происходит только, когда происходит ошибка синтаксиса JavaScript или ошибка во время выполнения программы, не когда происходит ошибка браузера. Например, если Вы пробуете установить window.location.href='notThere.html' и notThere.html не существует, возникающее в результате сообщение об ошибках это сообщение об ошибках браузера; следовательно, onError не прервет это сообщение. Однако, событие ошибки вызвается неверным URL внутри тэга IMG или разрушенными данными изображения.

window.onerror применяется только к ошибкам, которые происходят в окне, содержащем window.onerror, не в других окнах.

onError может быть любым из следующего:

Если Вы пишете функцию обработки ошибок, у Вас есть три параметра для отчета об ошибках:

Используемые свойства события

type
Указывает тип события.
target
Указывает объект, которому событие было первоначально послано.

Примеры

Пример 1: Null обработчик события. В следующем тэге IMG, код onError="null" подавляет сообщения об ошибках, если ошибки происходят, когда изображение загружается.

<IMG NAME="imageBad1" SRC="corrupt.gif" ALIGN="left" BORDER="2"
   onError="null">
Пример 2: Null обработчик события для окна. Обработчик события onError для окон не может быть установлен в HTML. Следовательно, Вы должны записать его буквами в нижнем регистре и установить в тэге SCRIPT. Следующий код присваивает null обработчику onError для всего окна, не только для объекта Image. Это подавляет все сообщения об ошибках JavaScript, включая сообщения для объекта Image.

<SCRIPT>
window.onerror=null
</SCRIPT>
<IMG NAME="imageBad1" SRC="corrupt.gif" ALIGN="left" BORDER="2">
Однако, если объект Image имеет заказной обработчик события onError, обработчик выполнится, если изображение имело ошибку. Это происходит, потому что window.onerror=null подавляет сообщения об ошибках JavaScript, но не обработчиков событий onError.

<SCRIPT>
window.onerror=null
function myErrorFunc() {
   alert("Изображение имеет ошибку.")
}
</SCRIPT>
<IMG NAME="imageBad1" SRC="corrupt.gif" ALIGN="left" BORDER="2"
   onError="myErrorFunc()">
В следующем примере, window.onerror=null подавляет все отчёты об ошибках. Без onerror=null, код вызвал бы ошибку переполнения стека из-за бесконечной рекурсии.

<SCRIPT>
window.onerror = null;
function testErrorFunction() {
   testErrorFunction();
}
</SCRIPT>
<BODY onload="testErrorFunction()">
тестовое сообщение
</BODY>
Пример 3: Функция обработки ошибок. Следующий пример определяет функцию, myOnError, которая прерывает ошибки JavaScript. Функция использует три массива, чтобы сохранить сообщение, URL и номер строки для каждой ошибки. Когда пользователь нажимает кнопку Показать Отчет об Ошибках, функция displayErrors открывает окно и создает отчет об ошибках в этом окне. Обратите внимение, что функция возвращает true, чтобы подавить стандартный диалог об ошибках JavaScript.

<SCRIPT>
window.onerror = myOnError
msgArray = new Array()
urlArray = new Array()
lnoArray = new Array()
function myOnError(msg, url, lno) {
   msgArray[msgArray.length] = msg
   urlArray[urlArray.length] = url
   lnoArray[lnoArray.length] = lno
   return true
}
function displayErrors() {
   win2=window.open('','window2','scrollbars=yes')
   win2.document.writeln('<B>Отчет об Ошибках</B><P>')
   for (var i=0; i < msgArray.length; i++) {
      win2.document.writeln('<B>Ошибка в файле:</B> ' + urlArray[i] + '<BR>')
      win2.document.writeln('<B>Номер строки:</B> ' + lnoArray[i] + '<BR>')
      win2.document.writeln('<B>Сообщение:</B> ' + msgArray[i] + '<P>')
   }
   win2.document.close()
}
</SCRIPT>
<BODY onload="noSuchFunction()">
<FORM>
<BR><INPUT TYPE="button" VALUE="Эта кнопка имеет синтаксическую ошибку"
   onClick="alert('незаконченная строка)">
<P><INPUT TYPE="button" VALUE="Показать Отчет об Ошибках"
   onClick="displayErrors()">
</FORM>
Этот пример производит следующий вывод:

Отчет об Ошибках
Ошибка в файле: file:///c%7C/temp/onerror.html
Номер строки: 34
Сообщение: незаконченный строковый литерал
Ошибка в файле: file:///c%7C/temp/onerror.html
Номер строки: 34
Сообщение: отсутствует ) после списка параметров
Ошибка в файле: file:///c%7C/temp/onerror.html
Номер строки: 30
Сообщение: noSuchFunction не определена
Пример 4: Обработчик события вызывает функцию. В следующем тэге IMG, onError вызывает функцию badImage, если происходят ошибка, когда изображение загружается.

<SCRIPT>
function badImage(theImage) {
   alert('Ошибка: ' + theImage.name + ' не загружено должным образом.')
}
</SCRIPT>
<FORM>
<IMG NAME="imageBad2" SRC="orca.gif" ALIGN="left" BORDER="2"
   onError="badImage(this)">
</FORM>

Смотрите также

onAbort, onLoad

Для общей информации об обработчиках событий, смотрите "Общая Информация о Событиях".

Для информации об объекте event, смотрите event.


[Содержание] [Предыдущая] [Следующая] [Индекс]

Последняя Модификация: 10/31/97 16:34:02


Права © 1997 Netscape Communications Corporation



Все мессаги сюда:yanich@inbox.ru
Hosted by uCoz