Manfred Laudahn: onLoad und Hintergrundbilder

Beitrag lesen

Hallo Tobias,

tut mir leid dir sagen zu müssen, dass ich die Antwort von Alexander für voll daneben gegriffen halte. Der IE verhält sich nämlich tatsächlich so, dass onLoad nicht das Laden der Hintergrundbilder abwartet. Das ist bei mir exakt auch so und es verhält sich bei allen Browser-Versionen so. Das ändert sich auch nicht durch eine Zuweisung auf ein neues Image-Objekt.

Ich habe allerdings für mich eine Lösung gebraucht und dementsprechend auch eine gefunden (www.abschweb.de: Funktion DiaShow).

Die Lösung ist:
1. Mache ein Preload:

var Hintergrund = new Image ();
Hintergrund.src = "bild.jpg";

2. Rufe im onLoad mit Zeitversatz eine Funktion auf, die den Ladezustand des Image-Objektes überprüft und wiederhole dies bis zum Erfolg.

function check_geladen ()

{
if (!Hintergrund.complete)
    setTimeout ("check_geladen ()", 1000)
else
    ... tu das, was du eigentlich schon in onLoad machen wolltest.

}

Das funktioniert hundertprozentig, du kannst es an Hand meiner DiaShow überprüfen.

Gruß
Manfred

Hallo, ich habe folgendes Problem: Der Event-Handler onLoad achtet nicht auf Hintergrundgrafiken. Er wird bereits aktiviert, sobald die HTML-Datei und die darin eingebetteten Grafiken geladen sind und lässt einen mit seinen Hintergrundbildern im Regen stehen. Allerdings habe ich das bisher nur mit dem IE6 getestet.

Hat jemand Erfahrung mit diesem Problem? Und würde es das Problem lösen, wenn man die Hintergrundbilder durch einen Preloader (wie ganz normaler Grafiken) in den Cache lädt? Wartet onLoad eventuell auf Preload-Grafiken?

Euer um Rat suchender,
Tobias