Webdesign mit CSS, HTML und Javascript
Stil mit {stil}
![]() Praxistests aktueller Kameras, Bildbearbeitung und Bildgestaltung foto.5lux.de Online-Magazin für Fotografie und Bildbearbeitung |
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.
<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>

