Avatar billede arnebalsby Nybegynder
01. december 2008 - 20:15 Der er 7 kommentarer og
1 løsning

Hvordan kan man finde ud af om siden er loaded (body.onload).

Hej.

Hvordan kan man inde fra en javascript funktion afgøre om siden er loaded færdig ?

Er der en properti på body eller document som hedder "isloaded" eller noget i den stil.

(jeg kan ikke sætte en bool i body.onload, da det er noget som kørere i forbindelse med et CMS hvor jeg ikke kan sætte events på body).

Mvh
Avatar billede arnebalsby Nybegynder
01. december 2008 - 20:44 #1
Det er kun en regulær properti alle "readystate" jeg er ude efter.

Hvis det ikke findes, må jeg få sat onload på body aligevel på en eller anden måde.
Avatar billede lerchedahl Nybegynder
01. december 2008 - 21:54 #2
if (whatever.readyState == 4){gør noget}
// 4 = "loaded"
Avatar billede lerchedahl Nybegynder
01. december 2008 - 22:20 #3
eller evt. window.onload+=;minFunktion();
Avatar billede olebole Juniormester
02. december 2008 - 02:23 #4
<ole>

At sætte onload-handlers på body-tagget er også lidt 'altmodish'  =)

if (window.attachEvent) window.attachEvent("onclick", myFunction);
else if (window.addEventListener) window.addEventListener("click", myFunction, false);
else if (typeof window.onload=="function") {
    var tmp = window.onload;
    window.onload = function(){tmp(),myFunction()};
}
else window.onload = myFunction;

/mvh
</bole>
Avatar billede olebole Juniormester
02. december 2008 - 02:28 #5
- eller du kan smide det i en funktion:

<script type="text/javascript">
function foo() {
    alert("Dokumentet er loaded");
}

function setEventHandler(o, sType, fnHandler) {
    if (o.attachEvent) o.attachEvent("on"+sType, fnHandler);
    else if (o.addEventListener) o.addEventListener(sType, fnHandler, false);
    else if (typeof o["on"+sType]=="function") {
        var tmp = o["on"+sType];
        o["on"+sType] = function(){tmp(),fnHandler()};
    }
    else o["on"+sType] = fnHandler;
}

setEventHandler(window, "load", foo);
</script>
Avatar billede arnebalsby Nybegynder
02. december 2008 - 16:27 #6
jo super tak. det perfekt med window.onload, så kører jeg bare den og behøves ikke  lave nogen ændringer i body tagget.

Bruger naturligvis ikke den altmodish facon med window.onload+=;minFunktion(), men den fine med addEventListener() etc.

Har iøvrigt lige testet om ole bole udgaven (den fine) kunne køres før siden overhovedet havde loaded, og det virkede fint at proppe det hele ind før body tagget.

Tak igen, og husk at lig et svar, også lerchedahl da du jo var dig som kom op med window.onload .

Mvh
Avatar billede lerchedahl Nybegynder
02. december 2008 - 16:42 #7
Jeg må naturligvis tilråde at bruge oles version. Og for lige at opklare: window.onload 'kører' ikke før siden er loaded - den trigger netop når siden er loaded helt færdig fuldstændig lig'som hvis du havde placeret en onload handler i <body>.
Avatar billede olebole Juniormester
02. december 2008 - 19:43 #8
PS: du skal i øvrigt også vide, at du kan tilføje så mange handlers, du har lyst til:

setEventHandler(window, "load", foo);
setEventHandler(window, "load", bar);
setEventHandler(window, "load", fooBar);
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