Nov 2009

DOM: Event-Handler onerror

 
 

error • Javascript Event für IMG, WINDOW

error ruft den Event Handler auf, wenn ein fehlerhaftes Bild nicht geladen werden kann oder ein Fehler bei der Scriptausführung auftritt. Der Event-Handler kann nur von einem Javascript-Fehler gezündet werden, nicht aber von einem Benutzerfehler. onerror = "null" unterdrückt die Standard-Fehlermeldung von Javascript.

Ein fehlendes Bild wird von allen Browsern zuverlässig erkannt. Ein Fehler im Scriptcode wird auf dem window-Objekt registriert. Safari 4 und Opera 10 unterstützen das Ereignis error für das Window-Objekt nicht.

Attribute

target
Objekt zu dem das Ereignis ursprünglich gesendet wurde
eventPhase
Phase, in der das Ereignis bearbeitet wird: AT_TARGET, BUBBLING_PHASE, CAPTURING_PHASE
bubbles
true, wenn das Ereignis nach oben steigen kann
cancelable
Nein
timeStamp
Zeit in Millisekunden, zu der das Ereignis eingetreten

onerror: Beispiel Fehlendes Bild

Ein fehlerhaftes Bild wird von allen Browsern erkannt.

Bild hallo


<img src="hallo" id="faulty" width="100" height="100" alt="Bild hallo" />

<script type="text/javascript" charset="utf-8">
var faulty = document.getElementById('faulty');
faulty.onerror = function(evt) {
   var onerror = document.getElementById('onerror');
   onerror.innerHTML = "Ein Bild wurde nicht gefunden";
}
</script>

Javascript onerror: Scriptfehler erkennen

Wenn der Event Handler mit dem traditionellen Modell für die Registrierung des Event Handlers aufgerufen wird – window.onload … – erkennen sowohl Firefox und Internet Explorer, dass ein Scriptfehler aufgetreten ist. FF kann aber keine Informationen zum Ereignis anzeigen.

Wird der Event Handler mit dem Event Listener des W3C registriert, erkennen sowohl Firefox als auch Internet Explorer den Typ des Ereignisses. FF erkennt auch die Eigenschaften eventPhase, cancelable und bubbles.

Safari unterstützt onerror auf dem window-Objekt nicht.

Traditionelle Registrierung des Events (window.onerror)

Registrierung mit dem Event Listener des W3C bzw. attachEvent für Internet Explorer

<script type="text/javascript" charset="utf-8">
function imFehlerfall(evt) {
    var canvas = document.getElementById('onerror');
	canvas.innerHTML = 'Fehler im Script';
}

window.onload = function () {
	document.form[007].value = "button"; // fehlerhafte Zeile
}
window.onerror = imFehlerfall;
</script>
   


Copyright © 2000 - 2010 Media Engineering Alle Rechte vorbehalten
Design + Programmierung Media EngineeringImpressum und Nutzungsbestimmungen