Avatar billede wired Nybegynder
28. juli 2004 - 10:46 Der er 15 kommentarer og
1 løsning

save scroolbar position

Jeg har bemærket at eksperten.dk kan huske hvor scroolbar'en var efter at bliver refreshed eller et svar er blevet sendt.

Hvorledes gør den det?
Avatar billede Slettet bruger
28. juli 2004 - 12:30 #1
Jeg ved ikke præcist, hvordan eksperten gør, men en måde er vha. JavaScript at aflæse scrollbarens position og sende den med som GET-variabel, så den næste side kan "huske" det.

Fx (sættes så langt oppe i HEAD som muligt):

<script type="text/javascript">
if (self.location.href.indexOf("?scr=") != -1)
  window.scrollTo(0, parseInt(self.location.href.split("?scr=")[1], 10));

function huskScrollbar() {
  scrT = (document.all) ? document.body.scrollTop : window.pageYOffset;
  self.location.href += "?scr=" + scrT;
}
</script>

<a href="#" onclick="huskScrollbar(); return false;">Reload side</a>

Ovenstående virker kun for vertikal scroll, og hvis der ingen andre GET-variable er.
Avatar billede roenving Novice
28. juli 2004 - 14:09 #2
Det er browseren, som husker det ...
Avatar billede wired Nybegynder
28. juli 2004 - 14:16 #3
Det syntes ikke at virke hvis man ruller ned og trykker refresh, lige som eksperten.
Avatar billede wired Nybegynder
28. juli 2004 - 14:25 #4
Øhh... Det syntes i det hele taget ikke at virke?
Avatar billede roenving Novice
28. juli 2004 - 14:27 #5
Funktionen er indbygget som default opførsel i de browsere, jeg kender ...
Avatar billede wired Nybegynder
28. juli 2004 - 14:34 #6
det bør måske bemærkes at jeg opnår min menubar ved brug af :

<div style='OVERFLOW: auto; HEIGHT: 450px'>en hel masse</div>

roenving: Vil det sige at den automatisk hoppe ned til sidst anvende placering når du bruger IE6.0
Avatar billede roenving Novice
28. juli 2004 - 14:44 #7
Hvis du trykker opdatér, ja !-)
Avatar billede wired Nybegynder
28. juli 2004 - 15:33 #8
Det gør den sørme også, bare ikke når jeg bruger asp.net (sikkert noget viewstate el. lign.). hmmm... Måske derfor jeg heller ikke kan få det andet eksempel til at virke.
Avatar billede Slettet bruger
28. juli 2004 - 18:01 #9
Hvis siden ændrer sig, hopper den ikke ned til den tidligere placering (hvilket er hele idéen). Og mit script virker kun, hvis man trykker på "Reload side"-linket.
Avatar billede Slettet bruger
28. juli 2004 - 18:01 #10
Ellers skal du til at arbejde med cookies.
Avatar billede wired Nybegynder
28. juli 2004 - 18:57 #11
Okay, jeg overføre positionen til min server og sender dem tilbage, det skulle nok kunne lade sig gøre. Det lyder godt det I skriver, men jeg kan ikke så meget som at få følgende til at virke(i headeren):

<script language="javascript" type="text/javascript">
window.scrollTo(0,50);
</script>

Det må være noget jeg overser.
Avatar billede wired Nybegynder
28. juli 2004 - 18:59 #12
Åhhh.. en af fejlene var at det skal stå sidst i programmet for ellers er siden ikke skrevet når det udføres og så vil det ikke virke :-)
Avatar billede wired Nybegynder
28. juli 2004 - 19:00 #13
Men der ser ikke ud til at virke på

<div style='overflow: auto; height: 450px'>
en hel masse
</div>

Så bliver jeg nok nød til at lave en iframe.. øv...
Avatar billede wired Nybegynder
28. juli 2004 - 20:42 #14
Det lykkedes mig at få det til at virke.
Det ser ud til var dig phoenixv som kom med løsningen (perfekt), mange tak.
Send lige et svar og du får dine point.
Avatar billede Slettet bruger
29. juli 2004 - 10:38 #15
Fedt at du selv kunne rette fejlene! :)
Avatar billede wired Nybegynder
29. juli 2004 - 16:33 #16
Det var faktisk dit forslag der fik mig frem til løsningen.. :-)
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