När jag öppnar en bild i ett nytt fönster så vill jag ha värdena img.width och img.height från en förladdad bild. Detta för att senare bestämma vilken storlek jag skall ha på fönstret. Problemet är att det fungerar ibland och ibland inte. Bildens namn och själva bilden kommer alltid upp men som sagt bara ibland får jag information om höjd och bredd på bilden. Kan det vara så att du försöker hämta bredd och höjd innan bilden har hunnit läsas in? Det finns en egenskap <b>complete</b> hos bildobjekt som du kanske kan utnyttja. Jag testade med en do while loop. en bild behöver ju inte vara nedladdade helt för att man ska kunna veta storleken på den... storleken står i början av filen... Du kan la köra en setTimeOut, och anropa någon funktion några gånger i sekunden för att se om height och width är skilda från noll. När till slut alla är det så anropar du den grejen du vill ha.Ibland får jag värden och ibland inte?
Koden ser ut så här:
----------------------------------------------------------
<html>
<head>
<title></title>
<script language="javascript">
function test()
{
var bild = location.search //Hämta data från url
var nr = bild.indexOf("=")+1 //Ta reda på vart frågetecknet är
bild = bild.substring(nr) //Ta ut bildens namn
document.write(bild+"<br>")
var img = new Image(); // Skapa nytt bildobjekt
img.src = "bilder/"+bild; // Ange källa till bilden
document.write("bredd:"+img.width +" höjd:"+img.height +"<br>") // Visa höjd och bredd
document.write("<img src='bilder/"+bild +"'> <br>") // Visa bilden
}
</script>
</head>
<body onLoad="test()">
</body>
</html>
----------------------------------------------------------
Här är vad som skrivs ut på skärmen:
----------------------------------------------------------
11230014.JPG
bredd:0 höjd:0 (och ibland t ex bredd:700 höjd:525)
#bilden visas#
----------------------------------------------------------
Jag kör sajten från min Win Xp på en Win 2000 server med IIS.
Vad är det som händer, vad är fel???
Tacksam för hjälp.Sv: Ibland får jag värden och ibland inte?
http://www.devguru.com/Technologies/ecmascript/quickref/image.htmlSv: Ibland får jag värden och ibland inte?
Det konstiga är att ibland så är img.complete == false
men jag får ändå ut höjd och bredd.
Om jag kör do while loopen och img.complete == false
så kommer en systemmeddelande med texten:
"Ett skript på den här sidan gör att internet explorer körs långsamt. Om skriptet fortsätter att köras
kan det hända att datorn låser sig. Vill du avbryta skriptet? Ja/Nej"
Svarar jag nej så blir img.complete == true.
Detta innebär att jag inte kan vänta tills bilden är färdigladdad pga av systemmeddelandet?!?!?
Det måste ju vara fler än jag som vill ha ut höjd och bredd genom javascript och
erfar lika problem ???Sv: Ibland får jag värden och ibland inte?
Sv: Ibland får jag värden och ibland inte?
Finns det risk för att någon har bredd eller höjd lika med noll kan du ju kolla om height och width blir skilt från noll eller om den är complete.