Avatar billede fsconsult.dk Nybegynder
28. oktober 2004 - 12:04 Der er 4 kommentarer og
1 løsning

Refresh af side hvert minut, med bevarelse af scrollbar position

Jeg forsøger at lave en automatisk refresh af en side engang i minuttet.

Jeg har prøvet med html-equiv, og javascript setTimeout('window.location.reload()',10*1000)

Begge løsninger har dog den kedelige effekt, at de "glemmer" hvor man stod på siden, i modsætning til hvis man manuelt laver en refresh i browseren.

Er der nogen der kender en måde at løse dette problem på?
Avatar billede roenving Novice
28. oktober 2004 - 13:00 #1
Jeg mener at det eneste du kan gøre at aftaste hvor du er på siden og så sende den værdi med ved opdatering !-)
Avatar billede fsconsult.dk Nybegynder
28. oktober 2004 - 14:19 #2
Har overvejet den mulighed, men har ikke fundet nogen specifikation af hvilke(n) property jeg skal læse/sætte..
Avatar billede nielsbrinch Nybegynder
28. oktober 2004 - 16:51 #3
Her aflæses og sættes nuværende scroll: document.body.scrollTop

Du kan også bruge scrollTo(0, 100);
Avatar billede olebole Juniormester
31. oktober 2004 - 04:13 #4
<ole>

'document.body.scrollTop' returnerer 0, hvis man bruger en DTD, der sørger for, at IE overholder standarderne. Derimod returnerer 'document.documentElement.scrollTop' den ønskede værdi med den korrekte DTD. For at være uafhængig af DTD, kan man teste på 'document.compatMode':

<script type="text/JavaScript">
function myReLoc() {
    var bc, oDate, newTime, sTop;
    bc = document.compatMode.toLowerCase() == "backcompat";
    sTop = (bc)? document.body.scrollTop : document.documentElement.scrollTop;
    oDate = new Date();
    newTime = oDate.getTime() + (1000*60);
    oDate.setTime(newTime);
    if ( navigator.cookieEnabled ) {
        document.cookie="scrollKage="+sTop+";expires=" + oDate.toGMTString();
    }
    location.reload(true);
}
function doScroll() {
    if ( navigator.cookieEnabled && document.cookie.indexOf("scrollKage=")!=-1 ) {
        window.scrollTo(0, document.cookie.split("=")[1]);
    }
    setTimeout("myReLoc()", 1000*10);
}
window.onload = function() {
    doScroll();
}
</script>

Her sætter vi en cookie med den aflæste scroll-værdi lige før, der reloades. Kagen har en levetid på et minut, hvilket skulle være rigeligt til at sikre, værdien kan aflæses, når dokumentet igen ankommer til browseren.
På onload checker vi, om der er en kage med det rigtige navn. Hvis der er, scrolles siden det ønskede stykke.

/mvh
</bole>
Avatar billede olebole Juniormester
31. oktober 2004 - 04:14 #5
:)
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