Sida 1 av 1

Fel data då bild hämtas från länk ? (Javaskript + IE8)

Postat: 29 augusti 2012, 12:12:30
av 4kTRB
Har följande rader i en JavaScript kod och kör det hela i IE8.

Kod: Markera allt

i = 0;
pictures[IMAGE][i].src = "http://www.hemsida.se/bilder/" + "img" + i + ".jpg";
alert("Bild: " + i + " " + pictures[IMAGE][i].src + " height: " + pictures[IMAGE][i].height + " width: "+ pictures[IMAGE][i].width);
Länkar jag direkt till bilden:
http://www.hemsida.se/bilder/img0.jpg
och högerklickar på bilden och visar Egenskaper så är alla data riktiga, rätt höjd och bredd.

Men alert ovan skriver ut helt andra uppgifter på höjd och bredd, den skriver ut data för en annan, tidigare, bild
som hade samma namn. Men när bilden visas på hemsidan så visas den nya men med den
äldre bildens dimensioner, alltså med fel proportioner.

Jag har tagit bort allt vad webhistorik heter i IE innan jag hämtar sidan men det
verkar inte vara det som är problemet.

Är det servern som hämtar bild och uppgifter från olika platser?

Re: Fel data då bild hämtas från länk ?

Postat: 29 augusti 2012, 12:20:20
av sneaky
Jag är kraftigt rostig men jag skulle väl tippa att bilden inte hunnit laddas klart när du kör alerten. Prova att lägga alerten i en "onload" för bilden istället.

Re: Fel data då bild hämtas från länk ?

Postat: 29 augusti 2012, 12:22:44
av sodjan
Tänkte också i de banorna. Bara för att man sätter en variabel som pekar på bildens URL
så sker det ju ingen hämtning av varken bild eller bildparametrar i det läget.
Så alerten har inget att jobba med i det läget och gissar väl så gott den kan... :-)

Re: Fel data då bild hämtas från länk ?

Postat: 29 augusti 2012, 12:34:59
av 4kTRB
Men det är fel för bildens proportioner när den visas
stämmer med det som alert anger.

Till exempel om en bild BxH = 200x100 visats i platsbehållaren innan och
byts ut med en bild BxH = 100x200 så visas den nya som BxH = 200x100
och det är också de data alert skriver ut.

Sedan när bilden ska läggas in i dokumentets img-tag
använder jag följande rader:

Kod: Markera allt

function visaBild(i) {
	document.images[i].src = pictures[IMAGE][i].src;
}
Kan jag ha gjort något galet här kanske?

Re: Fel data då bild hämtas från länk ?

Postat: 29 augusti 2012, 12:45:12
av sodjan
Tja, *vi* vet ju inte vad "i" är i de olika fallen...

Re: Fel data då bild hämtas från länk ?

Postat: 29 augusti 2012, 13:16:37
av 4kTRB
Det som ni kommenterar stämmer!
:) Tack! :)
Jag satte data på img-taggen innan bilden laddats.

Jag kodar så här:

Kod: Markera allt

imgTag.setAttribute("border", "0");
imgTag.setAttribute("alt", "Tumnagel");
imgTag.setAttribute("src", "");			
aTag.appendChild(imgTag);
visaBild(i - 1);
imgTag.setAttribute("height", document.images[i-1].height);
imgTag.setAttribute("width", document.images[i-1].width);
....
function visaBild(i) {
	document.images[i].src = pictures[IMAGE][i].src;
}
istället för som tidigare:

Kod: Markera allt

imgTag.setAttribute("border", "0");
imgTag.setAttribute("alt", "Tumnagel");
imgTag.setAttribute("src", "");
imgTag.setAttribute("height", pictures[IMAGE][i - 1].height);
imgTag.setAttribute("width", pictures[IMAGE][i - 1].width);
aTag.appendChild(imgTag);
visaBild(i - 1);
....
function visaBild(i) {
	document.images[i].src = pictures[IMAGE][i].src;
}
Typiskt att missa så pass basic när man inte kodar mer än på hobby-nivå.