Heim >Web-Frontend >js-Tutorial >Lösung für das ungültige Image-Onload-Ereignis in IE browser_javascript skills

Lösung für das ungültige Image-Onload-Ereignis in IE browser_javascript skills

WBOY
WBOYOriginal
2016-05-16 16:50:481012Durchsuche

Die Story-Modus-Implementierung besteht darin, nur das aktuell durchsuchte Foto und die beiden Fotos darunter zu laden. Der Kommentarbereich wird geladen und gerendert, wenn das Bild geladen wird, wird ein Ein-Pixel-Bild verwendet als Platzhalter und a Die Ladeklasse zeigt ein Ladehintergrundbild an, das durch ein echtes Bild ersetzt wird, wenn festgestellt wird, dass es sich im sichtbaren Bereich befindet. Nachdem das Bild erfolgreich geladen wurde, wird die Ladeklasse gelöscht.

Das Problem liegt am Ende. Es wurde festgestellt, dass die Ladeklasse unter IE nicht gelöscht werden kann. Der Code lautete damals wie folgt:

Kopieren Sie den Code Der Code lautet wie folgt:

img.src = _src;
img.src = _src;
img.onload = function(){
_con.delClass('loading') ;
}

Ich habe online gesucht und festgestellt, dass die Reihenfolge von onload und den Anweisungen, die src definieren, geändert werden sollte Cache und Onload werden überhaupt nicht ausgelöst. Die korrekte Codeänderung ist wie folgt:
Code kopieren lautet wie folgt:

img.onload = function(){
_con. delClass('loading');
};
img.src = _src;

Es wird sofort normal sein


Schlussfolgerung: Onload sollte vor src geschrieben werden. Teilen Sie dem Browser zunächst mit, was nach dem Laden des Bildes zu tun ist, und lassen Sie ihn dann das Bild laden. Daher liegt es nicht daran, dass der IE-Browser das Onload-Ereignis nicht auslöst, sondern daran, dass die Ladepuffergeschwindigkeit zu hoch ist. Der Ladevorgang wurde bereits abgeschlossen, ohne dass ihm mitgeteilt wurde, was nach dem Laden zu tun ist. Andererseits ist Firefox offensichtlich intelligenter. Nach dem Hinzufügen des Onload-Ereignisses erkennt der Firefox-Browser, ob das Bild bereits im Puffer vorhanden ist. Wenn ja, löst er dieses Ereignis direkt aus.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn