.load() in IE für gecachte Bilder beheben

Avatar of Chris Coyier
Chris Coyier on

Die .load()-Funktion wird ausgelöst, wenn das Element, auf dem sie aufgerufen wird, vollständig geladen ist. Sie wird häufig bei Bildern verwendet, die möglicherweise noch nicht vollständig geladen sind, wenn das JavaScript ursprünglich ausgeführt wird, und somit falsche Informationen über sich selbst liefern würden (z. B. Höhe/Breite). Die meisten Browser handhaben dies problemlos. IE kann Probleme verursachen, wenn Bilder auf der Seite zwischengespeichert werden.

Das Bild auswählen und das src-Attribut ändern, um einen zufälligen Parameter (basierend auf dem Datum) anzuhängen. Dies wird IE dazu bringen, die .load()-Funktion ordnungsgemäß auszulösen.

myImge = $("<img />")
   .attr("src",anyDynamicSource+ "?" + new Date().getTime());

Jetzt funktioniert die .load()-Funktion, auch in IE

$(myImge).load(function() {
   alert("will alert even in IE")
});
Siehe den ersten Kommentar für eine Warnung bezüglich der Verwendung dieser Technik mit einem CDN.