Обработчик события для объектов |
Image , Window
|
Реализовано в | Navigator 3.0 |
Синтаксис
onError="handlerText"
Параметры
| Код JavaScript или запрос к функции JavaScript. |
Описание
Событие ошибки происходит только, когда происходит ошибка синтаксиса JavaScript или ошибка во время выполнения программы, не когда происходит ошибка браузера. Например, если Вы пробуете установить window.location.href='notThere.html'
и notThere.html
не существует, возникающее в результате сообщение об ошибках это сообщение об ошибках браузера; следовательно, onError
не прервет это сообщение. Однако, событие ошибки вызвается неверным URL внутри тэга IMG
или разрушенными данными изображения.
onError
может быть любым из следующего:
Если Вы пишете функцию обработки ошибок, у Вас есть три параметра для отчета об ошибках:
type | Указывает тип события. |
target | Указывает объект, которому событие было первоначально послано. |
Примеры
Пример 1: Null обработчик события. В следующем тэге IMG
, код onError="null"
подавляет сообщения об ошибках, если ошибки происходят, когда изображение загружается.
<IMG NAME="imageBad1" SRC="corrupt.gif" ALIGN="left" BORDER="2"
Пример 2: Null обработчик события для окна. Обработчик события
onError="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>
Пример 3: Функция обработки ошибок. Следующий пример определяет функцию,
window.onerror = null;
function testErrorFunction() {
testErrorFunction();
}
</SCRIPT>
<BODY onload="testErrorFunction()">
тестовое сообщение
</BODY>myOnError
, которая прерывает ошибки JavaScript. Функция использует три массива, чтобы сохранить сообщение, URL и номер строки для каждой ошибки. Когда пользователь нажимает кнопку Показать Отчет об Ошибках, функция displayErrors
открывает окно и создает отчет об ошибках в этом окне. Обратите внимение, что функция возвращает true, чтобы подавить стандартный диалог об ошибках JavaScript.
<SCRIPT>
window.onerror = myOnErrormsgArray = 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
Пример 4: Обработчик события вызывает функцию. В следующем тэге
Номер строки: 30
Сообщение: noSuchFunction не определена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
Все мессаги сюда:yanich@inbox.ru |