Avatar billede stringbuffer Nybegynder
11. oktober 2000 - 18:29 Der er 10 kommentarer og
1 løsning

Tjek om billede er loadet

Hvordan tjekker man om et billede er indlæst færdig i Natscape?
Har prøvet Image.complete med JavaScript1.1, men det returnerer ALTID false.
Help /me, prrrlease!?!?!?
Avatar billede dr.kaos Nybegynder
11. oktober 2000 - 21:57 #1
En måde jeg bruger er at indkapsle det billede jeg skal teste i et DIV

<DIV ID=\"TEST\">BILLEDE HER</DIV>

Test herefter om billedet er loadet i java script:

I NS: document.TEST.document.images[0].complete;
I IE: document.all.TEST.all.tags(\"IMG\").item(0).complete;

Hvis der er flere billeder test på 1,2,3 osv..
Avatar billede stringbuffer Nybegynder
12. oktober 2000 - 01:15 #2
nix, det virker ikke.
jeg får at vide:

document.TEST has no properties

Hvilken version af JavaScript bruger du til det?


Avatar billede stringbuffer Nybegynder
12. oktober 2000 - 01:16 #3
skal lige nævne at jeg i forvejen har en <div> på min side - er det noget, der kan genere din kode?
Avatar billede dr.kaos Nybegynder
12. oktober 2000 - 08:45 #4
Du har ret jeg får også den fejl men først når det ligger på internettet. Ikke nor det ligger interne på mig pc?

Avatar billede geeeet Nybegynder
12. oktober 2000 - 09:17 #5
Jeg tjecker det altid ved at lave en Loaded variablel som er false, og så sætter jeg den true lige efter jeg har loaded gifferne...

var loaded = false;

...loader giffer...

var loaded = true;

Så kan man spørge:

if(loaded)
  doThis...


Det synes jeg fungerer ret godt... :-)

/Geeeet
Avatar billede stringbuffer Nybegynder
12. oktober 2000 - 13:11 #6
ehm... hvordan er det lige, du loader de billeder?
hvis man laver en

var loaded = false;
myImg.src = \"noget.gif\";
var loaded = true;

så vil den med det samme sætte loaded til true selvom billedet ikke er færdigindlæst. Den loader jo billederne asynkront, ellers ville du få frosset browseren hvis den stoppede indtil noget var indlæst.
Avatar billede stringbuffer Nybegynder
12. oktober 2000 - 13:18 #7
til dr.kaos:

Hvis du køre den fra din egen maskine skal du huske at køre den via en server, f.eks. installér PWS og kør filen fra http://localhost
Ellers vil man kunne gøre forskellige ting som browseren ikke ellers vil tillade af sikkerhedsmæssige årsager (f.eks. læse top.window variable fra en iframe i IE)
Avatar billede geeeet Nybegynder
12. oktober 2000 - 13:34 #8
Ja, jeg ved godt at den vil sætte den true selvom at billedet måske ikke er færdigindlæst, MEN det sikrer at myImg.src eksistrer hvis folk begynder at lave mouseovers inden at billedet er loaded...

Altså, det sikrer ikke at billedet er klar, men det sørger for at der ingen scriptfejl kommer, indtil billedet er loaded...

True

/Geeeet
Avatar billede dr.kaos Nybegynder
12. oktober 2000 - 14:47 #9
Du tester først om billedet er loadet når hele dokumentet er færdigloadet!

Hvis ikke prøv med:
setTimeout(\'WaitForPicToLoad()\',2500); eller noget ligende.
Avatar billede bobby Nybegynder
12. oktober 2000 - 17:02 #10
Du kan lave din egen image complete proberty.

<img name=\"myImage\" src=\"test.gif\" onLoad=\"this.myComplete=true\">

Eksempel på brug af propertien:
<form>
<input type=\"button\" value=\"test\" onClick=\"if (document.myImage.myComplete) alert(\'image loaded\'); else alert(\'image not loaded\')\">
</form>

Svaret er stjålet fra på http://developer.irt.org/script/1405.htm  der endvidere oplyser at \".. NN4 - provides an incorrect true reading before the image has completely loaded..\"
Avatar billede stringbuffer Nybegynder
10. november 2000 - 10:35 #11
tak, endelig et svar, der kan bruges... :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester