Пример 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>