I det kodexemplet du gav oss är:
images[counter].src == "undefined"
Har du lite mer kod att bjuda på månne?
:)
5 svar · 297 visningar · startad av gekko
Jag har förladdat 3 bilder.
Sedan tar jag reda på den största höjden genom att skriva
images = new Array('1.gif','2.gif','3.gif');
var largest_height=0;
for(counter in images)
{
images_list[counter] = new Image();
images_list[counter].src = images[counter].src;
if(images_list[counter].height)
largest_height = images_list[counter].height;
}
i IE blir largest_height 27px vilket är den rätta höjden men
i NS blir höjden 0px
Ngn som vet hur man kan göra i NS för ta reda på höjden
I det kodexemplet du gav oss är:
images[counter].src == "undefined"
Har du lite mer kod att bjuda på månne?
:)
Det där scriptet såg lite skummt ut.
Prova detta:
images = new Array('1.gif','2.gif','3.gif');
var largest_height=0;
images_list = new Array()
for(counter in images){
images_list[counter] = new Image();
images_list[counter].src = images[counter];
if(images_list[counter].height>largest_height){
largest_height = images_list[counter].height;
}
}
Hanteringen av bildladdning fungerar olika i Netscape och IE. När du laddar en bild i IE och läser av egenskapen för ex height så haltas script-exekveringen tills dess att bilden laddats (eller tills dess att timeout'en talar om att resursen inte finns). I Netscape fortsätter exekveringen glatt i hågen, bildens storlek sätts default till 0 tills dess att bilden laddats, då uppdateras egenskapen för height. Således, laddar du en bild och på raden efter försöker att läsa av dess storlek i Netscape kommer du med största sannolikhet att få 0 som svar.
Prova att ladda bilderna som vanligt och sedan läsa av storleken vid onload.
Problemet är att jag förladdar dem pga av att jag inte ska använda alla från början.
Som Jojoxx skrev, läs av storleken vid onload genom att använda koden som Johnsen gav dig:
window.onload = function(){
//Johnsens kod...
};
:)