2009-10-19 5 views
26

Was ist die beste Möglichkeit, ein lokales Fallback-Image einzurichten, wenn das externe Image nicht geladen wird oder zu lange zum Laden braucht.Ausweichbild und Timeout - Externer Inhalt. JavaScript

+0

Brilliant! Ich wollte gerade die gleiche Frage stellen, und ich habe eine schnelle Google-Suche durchgeführt und diese Frage gefunden. Ich dachte daran, es Server-Seite zu tun, aber Client-Seite klingt viel einfacher. – Skilldrick

Antwort

43

Sie können einen oneror Handler hinzu:

<img src="http://example.com/somejpg.jpg" 
    onerror='this.onerror = null; this.src="./oops.gif"' /> 

Hinweis auf null in der Prozedur Einstellung onerror so dass der Browser nicht stirbt, wenn oops.gif aus irgendeinem Grund nicht geladen werden kann.

+0

Oh, ich habe den Fehler vergessen. Dies könnte einfacher sein, aber die Lösung, die ich unten gepostet habe, ermöglicht es, die Bilder vorab zu prüfen und ihre Verfügbarkeit zu überprüfen, bevor sie angezeigt werden müssen. Hängt davon ab, was Sie brauchen ... – moxn

+0

Super! Liebe es, wenn ich neue Tricks lerne. Ich würde auf einige jQuery Jiggery pokery zurückgreifen. – MikeMurko

+0

Das Problem hier ist die Zeit, in der das Bild als nicht verfügbar angesehen wird! Das Laden der Browseraktivität kann lange dauern, bis das Ereignis "onerror" aufgerufen wird. – SaidbakR

2

Versuchen Sie, die Image.complete-Eigenschaft zu verwenden.

var img = new Image(w,h) 
img.src = "http://..."; 

nun in regelmäßigen Abständen überprüfen, ob img.complete wahr ist und eine Fallback-Mechanismus nennen shuold es noch false nach n Sekunden.

Verwandte Themen