Пример 1: Обработчик со значением
Пример 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("The image had a nasty error.")
}
</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()">
test message
</BODY>Пример 3: Функция обработки ошибок. Здесь определена функция myOnError, которая перехватывает ошибки JavaScript. Эта функция использует три массива для хранения сообщения, URL и строки-нарушителя для каждой ошибки. Если пользователь щёлкает кнопку Display Error Report, функция 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>Error Report</B><P>')
for (var i=0; i < msgArray.length; i++) {
win2.document.writeln('<B>Error in file:</B> ' + urlArray[i] + '<BR>')
win2.document.writeln('<B>Line number:</B> ' + lnoArray[i] + '<BR>')
win2.document.writeln('<B>Message:</B> ' + msgArray[i] + '<P>')
}
win2.document.close()
}
</SCRIPT><BODY onload="noSuchFunction()">
<FORM>
<BR><INPUT TYPE="button" VALUE="This button has a syntax error"
onClick="alert('unterminated string')">
<P><INPUT TYPE="button" VALUE="Display Error Report"
onClick="displayErrors()">
</FORM>
Этот пример даст на выходе:
Error ReportError in file:
file:///c%7C/temp/onerror.html
Line number: 34
Message: unterminated string literal
Error in file: file:///c%7C/temp/onerror.html
Line number:
34
Message: missing ) after argument list
Error in file: file:///c%7C/temp/onerror.html
Line number: 30
Message: noSuchFunction is not defined
Пример 4: Обработчик события вызывает функцию. В тэге IMG обработчик onError вызывает функцию badImage при возникновении ошибок во время загрузки изображения.
<SCRIPT>
function badImage(theImage) {
alert('Error: ' + theImage.name + ' did not load properly.')
}
</SCRIPT>
<FORM>
<IMG NAME="imageBad2" SRC="orca.gif" ALIGN="left" BORDER="2"
onError="badImage(this)">
</FORM>
Содержание раздела