IE unterstützt stattdessen attachEvent.
image.attachEvent("onload", function() {
// ...
});
Mit jQuery können Sie einfach schreiben
$(image).load(function() {
// ...
});
Wenn es um Ereignisse geht, würde ich empfehlen, jQuery zu verwenden, wenn dies möglich ist, da es die Browserkompatibilität sicherstellt. Ihr Code wird in allen gängigen Browsern funktionieren und Sie müssen sich keine Sorgen darüber machen.
Beachten Sie auch, dass in IE das Laden des Bildes ohne Zwischenspeicherung erfolgen muss, damit das Ladeereignis ausgelöst wird, sonst wird in IE das Ladeereignis nicht ausgelöst.
Um dies zu erreichen, können Sie eine Dummy-Variable am Ende der URL Ihres Bildes anhängen, wie folgt
image.setAttribute('src', image.getAttribute('src') + '?v=' + Math.random());
Einige bekannte Probleme bei der Verwendung der jQuery load-Methode sind
Nachteile des load-Ereignisses bei Verwendung mit Bildern
Eine häufige Herausforderung, die Entwickler mit dem .load() Shortcut lösen wollen, ist die Ausführung einer Funktion, wenn ein Bild (oder eine Sammlung von Bildern) komplett geladen wurde. Es gibt mehrere bekannte Nachteile, die beachtet werden sollten. Dazu gehören:
- Es funktioniert nicht konsequent und zuverlässig in allen Browsern
- Es wird in WebKit nicht korrekt ausgelöst, wenn die Bildquelle auf dieselbe Quelle wie zuvor gesetzt ist
- Es wird nicht korrekt im DOM-Baum nach oben übertragen
- Kann aufhören, für Bilder zu funktionieren, die bereits im Browsercache gespeichert sind
Sehen Sie sich die jQuery-Dokumentation für weitere Informationen an.