Dimensionen eines img
Houyhnhnm
- browser
Ich lade ein .jpg per DHTML:
img = new Image;
img.src = 'bla.jpg';
Nachdem das Bild geladen ist, stehen in img.style.width bzw. height bei FF und IE6 die Abmessungen des Bildes.
Nur Opera 7.54 tanzt aus der Reihe: width und height sind dort 0.
Kann man das Teil irgendwie dazu bewegen, sich so zu verhalten, wie IE6 und FF?
hi,
schon mal mit sowas probiert?
attribute = element.getAttribute(name)
Gruss,
Mick
attribute = element.getAttribute(name)
Ja - kein Unterschied.
Hallo Houyhnhnm
img = new Image;
img.src = 'bla.jpg';
Ob img als Name für das neue Objekt günstig ist. Da könnte irgendein Browser
einen Konflikt mit dem gleichnamigen HTML-Objekt haben.
Nachdem das Bild geladen ist, stehen in img.style.width bzw. height bei FF und IE6 die Abmessungen des Bildes.
Wirklich?
Wodurch wurde style.width gesetzt?
Bei mir stehen diese Angaben dann in img.width und img.height.
Nur Opera 7.54 tanzt aus der Reihe: width und height sind dort 0.
Opera 7.54 habe ich im Moment nicht hier, Opera 8.51 verhält sich bei mir
gwenauso, wie FF 1.5.01 und IE 6.
Auf Wiederlesen
Detlef
Wirklich?
Wodurch wurde style.width gesetzt?
Bei mir stehen diese Angaben dann in img.width und img.height.
Du hast natürlich recht. Nur dummerweise war das ein Vertipper in der Mail. Ich lese in der Tat img.width aus und Opera gibt immer 0 zurück.
Eine Idee?
Hallo
Ob img als Name für das neue Objekt günstig ist. Da könnte irgendein Browser
einen Konflikt mit dem gleichnamigen HTML-Objekt haben.
Das ist natürlich Quatsch, die Grafikreferenzen im Dokument heißen images.
Auf Wiederlesen
Detlef
hi,
Nur Opera 7.54 tanzt aus der Reihe: width und height sind dort 0.
Vermutlich bist du zu schnell ...
Wenn ich in einem neuen Tab
javascript:x=new Image;x.src="{irgendeineBildadresse}";alert(x.width);
eingebe, und das Bild nicht nicht geladen/noch nicht im Cache ist, bekomme ich damit unter Opera 8.52 ebenfalls 0 ausgegeben.
Rufe ich das gleiche kurz danach noch mal auf, erhalte ich die Bildbreite in Pixeln.
Kann man das Teil irgendwie dazu bewegen, sich so zu verhalten, wie IE6 und FF?
Abwarten und Tee trinken.
Also dem Opera auch erst mal Zeit geben, das Bild zu laden.
Ggf. lässt sich per onload-Handler für das Bild was machen.
gruß,
wahsaga
img = new Image;
img.src = 'bla.jpg';Nachdem das Bild geladen ist, stehen in img.style.width bzw. height bei FF und IE6 die Abmessungen des Bildes.
Nachdem das Bild geladen ist, heißt, dass du folgendes gemachst hast:
img = new Image;
img.onload = function()
{
alert('Das Bild: ' + this.src
Nur Opera 7.54 tanzt aus der Reihe: width und height sind dort 0.
Das sollte natülich auch in dem alten Opera gehen, das ging auch schon in noch älteren Versionen.
Struppi.
HI!
img = new Image;
img.onload = function()
{
alert('Das Bild: ' + this.src
- '\nhat die Maße: ' + this.width +'x'+ this.height
}
img.src = 'bla.jpg';
Welche Browser akzeptieren denn ein img.onload? lt http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onload isdt der Eventhandler doch nur für body und frameset erlaubt.
Gruß aus Iserlohn
Martin
img = new Image;
img.onload = function()
{
alert('Das Bild: ' + this.src
- '\nhat die Maße: ' + this.width +'x'+ this.height
}
img.src = 'bla.jpg';Welche Browser akzeptieren denn ein img.onload? lt http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onload isdt der Eventhandler doch nur für body und frameset erlaubt.
Alle.
Offiziell ist der Event nicht beschrieben, aber offensichtlich hat Netscape diesen Event von Anfang an eingebaut (ich hab nur den NC 3 und der kann ihn) und alle anderen auch.
Struppi.
Ich habe mit xImgAsyncWait aus Michael Fosters X-Library auf das Laden der Grafik gewartet. Die funktioniert mit 250 ms Timeouts und prüft, ob das complete-Flag gesetzt ist. Ist das der Fall, dann wird eine Complete-Routine gerufen, in der ich ein alert eingebaut habe.
Wenn man das alert zweimal ausführen läßt, ist das Ergebnis nicht anders - also ist der Ladevorgang schon beim ersten abgeschlossen gewesen.
Ich werde versuchen das Verhalten in einer einfachen Testumgebung zu reproduzieren.
Ich habe mit xImgAsyncWait aus Michael Fosters X-Library auf das Laden der Grafik gewartet. Die funktioniert mit 250 ms Timeouts und prüft, ob das complete-Flag gesetzt ist. Ist das der Fall, dann wird eine Complete-Routine gerufen, in der ich ein alert eingebaut habe.
Das ist extrem unzuverlässig, da die complete Eigenschaft in manchen Browsern buggy ist und zudem im Falle des nicht vorhandenseins der Grafik und falls der Server einen Timeout sendet, extrem lange oder bis in alle Ewigkeit wartet.
Wie gesagt onload funktioniert seit NC 3 und IE 4 fast perfekt und daneben kannst du mit onerror noch prüfen ob das Bild evtl. gar nicht da ist.
Struppi.
Danke für den Hinweis.
Das Problem hat sich auf wundersame Weise vonselbst behoben, als ich das Projekt eben wieder aufgriff - das sollte häufiger vorkommen...
Ich vermute, daß mein XP irgend eine Macke abbekommen hatte - andere Browser verhielten sich am Ende der gestrigen Sitzung auch zuweilen etwas merkwürdig. Allerdings nicht so verrückt wie Opera.
Da hat wohl der Prozessor mal wieder zu viel gesoffen...
hi,
Da hat wohl der Prozessor mal wieder zu viel gesoffen...
Oder du hast den Füllstand der Wasserkühlung mit Hochprozentigem nachgefüllt ...?
gruß,
wahsaga