Avatar billede torbenmelander Nybegynder
06. januar 2003 - 10:50 Der er 3 kommentarer og
1 løsning

Preload af billeder

Jeg bruger følgende kode:

<script type="text/javascript">
<!--

function preloadImages(){
img_news_over = new Image();
img_news_over.src = "/_images/Menu.aspx?id=nyheder&mode=over";
img_news_out = new Image();
img_news_out.src = "/_images/Menu.aspx?id=nyheder";
}

function iOver(imgName){
    if (document.images)
    {
    if (typeof(eval(imgName + "_over")) == "undefined")
        alert("Undefined")
    else
        document[imgName].src = eval(imgName + "_over.src");
    }
}

function iOut(imgName){
    if (document.images)
    {
        if (typeof(eval(imgName + "_out")) == "undefined")
            alert("Undefined")
        else
            document[imgName].src = eval(imgName + "_out.src");
    }
}
//-->
</script>

<body onload="preloadImages();">

<a href="/news/" onFocus="blur();" onMouseOut="iOut('img_news');" onMouseOver="iOver('img_news');"><img border="0" src="/_images/Menu.aspx?id=nyheder" name="img_news"></a>

Problemet er at jeg får script fejl hvis jeg kører over et billede inden siden er færdigindlæst fordi img_news_over er undefined ... jeg har lavet ovenstående kode på funktionerne iOver og iOut for at tjekke om de er undefined ... men det virker ikke ...

Hvad gør jeg forkert ?
Avatar billede sostack Nybegynder
06. januar 2003 - 13:34 #1
Måske:
document[imgName].src = eval(imgName + "_out.src");
laves om til
document.all["imgName"].src = eval(imgName + "_out.src");
hvis det er beregnet til IE.
Avatar billede sostack Nybegynder
06. januar 2003 - 13:44 #2
document.all[imgName].src = eval(imgName + "_over.src");

virker for mig
Avatar billede torbenmelander Nybegynder
06. januar 2003 - 14:17 #3
Ja det giver så samme resultat ...
Problemet er at eval(imgName + "_out.src") er undefined hvis dokumentet ikke er færdig i indlæst ...
Avatar billede torbenmelander Nybegynder
06. januar 2003 - 19:32 #4
Nå ja men så må jeg jo beholde pointsne selv :(

Lavede en global variabel (preloaded) i scriptet som jeg satte til false. Ændrede så denne til true når preloadImages() nåedede til sidste linie ... På den måde kunne jeg nu i funktionerne iOut og iOver tjekke om alle billederne var oprettet med denne simple linie:

if(preloaded)
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