Universelles onError-Skript
Simon Riedl
- javascript
0 Carsten
Hallo!
Ich möchte, wenn auf einer HTML-Seite ein Bild nicht korrekt geladen wird, automatisch ein anderes Bild statdessen verwenden.
Ich könnte natürlich in jeden <img>-Tag ein onerror einbauen. Ich würde das aber gerne universell mit einem Skript erledigen.
Ungefähr ginge sowas glaub ich doch mit
window.captureEvents(Event.error);
window.onError = Bildwechsel;
function Bildwechsel (Ereignis) { tu was }
(Abgewandelt aus Selfhtml)
Da habe ich aber zwei Probleme:
Erstens geht das nur im Netscape
Und zweitens, wenn dann die Funktion Bildwechsel aufgerufen wird, müsste ich irgendwie abfragen, von welchem Bild denn der Fehler kam, damit ich mit window.document.images[nummer] wieder drauf zugreifen kann (und damit Höhe und Breite abfragen + src ändern kann)
Kann mir jemand weiterhelfen?
Hallo Simon!
... müsste ich irgendwie abfragen, von welchem Bild denn der Fehler kam, ....
Kann mir jemand weiterhelfen?
Rumprobieren kannst du mit
for(i=0,i<document.images.length;i++)
if(!document.images[i].complete)
alert("Bild "+i+" nicht geladen");
// http://www.teamone.de/selfhtml/tecbbe.htm#a3
aber AFAIR funktioniert das im NN nicht richtig sobald mehr als ein Bild zur gleichen Zeit geladen wird.
wahrscheinlich bist du mit einem <img src="..." onError="BildLadeFehler(this);"> besser dran - ganz in der Hoffnung das this in allen Browservarianten das (richtige) image Objekt liefert.
Gruss,
Carsten