Der Martin: Falsche Höhe und Breite nach dem Laden von Images auslesen

Beitrag lesen

Hi,

Ersetze ich z. B. ein Image durch ein kleineres Image mit dem selben Dateinamen, dann werden immer die Werte des zuerst unter diesem Namen angezeigten Images ausgelesen.

gibst du dem Browser denn überhaupt Zeit, das neu angeforderte Bild zu laden? Mit der Zuweisung der neuen URL an <bildobjekt>.src forderst du nämlich erst das neue Bild an. Bis es tatsächlich vom Server geliefert und vom Browser empfangen und interpretiert wird, dauert es ein Weilchen.

Nutze daher die complete-Eigenschaft des Bildobjekts[1] oder stelle mit einem onload-Handler[2], der ans Bildobjekt gebunden wird, den Abschluss des Ladevorgangs fest. Wenn du _dann_ auf width oder height zugreifst, bekommst du auch plausible Werte.

[1][2] Leider haben diese Methoden auch ihre Tücken. Die complete-Eigenschaft gibt anscheinend nicht immer zuverlässig Auskunft, und ein onload-Handler feuert AFAIK im IE nicht, wenn das Bild schon im Cache ist und von da geholt wird.

Ich hoffe, das hilft dir trotzdem ein Stück weiter.

So long,
 Martin

--
Die meisten Menschen werden früher oder später durch Computer ersetzt.
Für manche würde aber auch schon ein einfacher Taschenrechner genügen.