Bilddimensionen nach Preload auslesen
stefan
- javascript
Hallo,
ich möchte ein Bild via Javascript preloaden und im gleien Zuge die Dimensionen wissen. Ein Versuch mit diesem Code
testbild = new Image();
testbild.src = "http://....";
alert(testbild.width);
klappt nur beim Internet-Explorer, nicht aber bei Mozilla/Firefox.
Gibt es evtl. eine Möglichkeit die Bilddimensionen serverseitig im Header mitzusenden (à la 'Content-Type: image/png', image-heigth: 30)?
Viele Grüße,
Stefan
hi,
ich möchte ein Bild via Javascript preloaden und im gleien Zuge die Dimensionen wissen.
Zu welchem Zweck?
Ein Versuch mit diesem Code
testbild = new Image();
testbild.src = "http://....";
alert(testbild.width);klappt nur beim Internet-Explorer, nicht aber bei Mozilla/Firefox.
Du solltest nicht erwarten, dass ein Browser mit der nächsten Javascript-Anweisung wartet, bis das Bild fertig geladen wurde.
onload/onerror für das Bildobjekt sind da das erfolgversprechendere Gespann, siehe u.a. http://forum.de.selfhtml.org/archiv/2006/6/t131420/
oncomplete kommt ggf. noch hinzu, da der IE bei bereits gecachten Bildern kein onload mehr feuert.
Gibt es evtl. eine Möglichkeit die Bilddimensionen serverseitig im Header mitzusenden (à la 'Content-Type: image/png', image-heigth: 30)?
Beliebige eigendefinierte HTTP-Header kannst du mitsenden, wenn du ihre Namen wie es die Konvention vorgibt mit "X-" beginnen lässt.
Aber das nützt dir wenig, denn da kommst du mit Javascript nicht heran.
Lediglich mittels AJAX könntest du die HTTP-Responseheader auswerten - aber AJAX taugt nicht zum Laden von Bilddaten.
gruß,
wahsaga
Danke für die schnelle Antwort. Die Lösung war wirklich das Triggern der Abfrage auf 'onLoad'!
Das ganze benötige für eine relativ umständliche Lösung, um Iframes dynamisch in der Höhe zu variieren.
Ich habe es nämlich nicht geschaft, irgendeine Kommunikation zwischen Iframe-Javascript und Elternfenster-Javascript herzustellen, so daß ich nach dem Laden des Iframes ein php-generiertes Bild vorlade welches die Höhe des Iframes hat und dieser dann nachträglich in der Höhe verändert wird.
hi,
Das ganze benötige für eine relativ umständliche Lösung, um Iframes dynamisch in der Höhe zu variieren.
Ich habe es nämlich nicht geschaft, irgendeine Kommunikation zwischen Iframe-Javascript und Elternfenster-Javascript herzustellen, so daß ich nach dem Laden des Iframes ein php-generiertes Bild vorlade welches die Höhe des Iframes hat und dieser dann nachträglich in der Höhe verändert wird.
Was wird denn im Iframe angezeigt, und woher weiss "das Bild", wie hoch das ist?
gruß,
wahsaga
Hallo,
Was wird denn im Iframe angezeigt, und woher weiss "das Bild", wie hoch das ist?
Es handelt sich hier um ein sessionbasiertes Mini-Warenkorbsystem, welches auf einem anderen Server liegt. Da ich aber pro Item weiß, wieviel Platz das ganze einnimmt, kann ich die Höhe leicht berechnen, da es sich beim Preload ja um die gleiche Session handelt.
Gruß,
Stefan
hi,
Es handelt sich hier um ein sessionbasiertes Mini-Warenkorbsystem, welches auf einem anderen Server liegt. Da ich aber pro Item weiß, wieviel Platz das ganze einnimmt, kann ich die Höhe leicht berechnen
Es handelt sich also um reine Bilddaten, kein Fliesstext?
gruß,
wahsaga
Hallo,
Es handelt sich also um reine Bilddaten, kein Fliesstext?
Nein, im Iframe stehen schon Text und Bilddaten, die aber per PHP und CSS so zurechtgestutzt sind, das pro Eintrag wirklich eine fixe Höhe angenommen werden kann. Sonst würde die Idee mit dem Preload-Bild nicht funktionieren.
Gruß,
Stefan
hi,
Nein, im Iframe stehen schon Text und Bilddaten, die aber per PHP und CSS so zurechtgestutzt sind, das pro Eintrag wirklich eine fixe Höhe angenommen werden kann.
Also hast du eine max-height angegeben und overflow:hidden?
gruß,
wahsaga