Avatar billede ofirpeter Nybegynder
28. august 2006 - 12:19 Der er 18 kommentarer og
2 løsninger

Gem scrollbar position

Jeg har fundet denne smarte funktion som kan scrolle mig ned af siden.

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

Jeg mangler dog en kode stump som kan gemme scrollbarens position, og sende den med videre til næste side i en get-variabel?
Avatar billede olebole Juniormester
28. august 2006 - 13:09 #1
<ole>

function nav2(loc) {
    var pos, o = document.compatMode=="CSS1Compat" ? document.documentElement : document.body;
    pos = o.scrollTop;
    location.href = loc + "?pos=" + pos;
}

- og linket:
    <a href="side.html" onclick="nav2(this.href);return false">LINK</a>

/mvh
</bole>
Avatar billede coderdk Praktikant
28. august 2006 - 13:11 #2
Er det ikke noget med:

if (!document.documentElement.scrollTop)
    scrollY = document.body.scrollTop;
else
    scrollY = document.documentElement.scrollTop;
window.scrollTo(0,scrollY);

? :)
Avatar billede mclemens Nybegynder
28. august 2006 - 13:33 #3
Hvis nu man retter lidt i Olebole's så den ser sådan her ud:
function nav2(n) {
  d=document;
  o = d.compatMode=="CSS1Compat" ? d.documentElement : d.body;
  pos=o.scrollTop;
  n.href+="?pos=" + pos;
}

og <a href="2.html" onclick="nav2(this);">LINK</a>

... så er man fri for viderestilling via window.location.href ...
( location.href = loc + "?pos=" + pos; vs. n.href+="?pos=" + pos;
og nav2(this.href);return false vs. nav2(this); ... return false ? )
Avatar billede mclemens Nybegynder
28. august 2006 - 13:33 #4
... Men Olebole's virker som sagt fint :o)
Avatar billede mclemens Nybegynder
28. august 2006 - 13:37 #5
[ coderdk ] Olebole's tager hensyn til om IE er i quirks eller ej...

ofirpeter> Du kan parse url'en med denne hvis det er:
http://www.eksperten.dk/spm/724039#rid6373520

... og så måske bruge
if(_GET['pos'])window.scrollTo(0,_GET['pos']);
(ikke testet)
Avatar billede ofirpeter Nybegynder
28. august 2006 - 13:39 #6
Så burde noget lignende dette virke:

<a href="test.php" onclick="nav2(this.href);return false">LINK</a>

<script language="javascript" type="text/javascript">
function nav2(loc) {
    var pos, o = document.compatMode=="CSS1Compat" ? document.documentElement : document.body;
    pos = o.scrollTop;
    location.href = loc + "?pos=" + pos;
}

window.scrollTo(0,'getQueryVariable("pos")');
</script>

Jeg bliver dog aldrig scrollet ned, håndterer jeg get variablen rigtigt?
Avatar billede mclemens Nybegynder
28. august 2006 - 13:49 #7
Eksempel:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>



<script type="text/javascript">

var _GET={}; /* global object til opbevaring af dokument variabler... */

vars=window.location.href;

if(vars.indexOf("?")!=-1)vars=vars.replace(/\+/g," ").replace(/.*?\?/,"").split("&");
else vars=[];

for(i=0;i<vars.length;i++){
  vars2=vars[i].split("=");
  _GET[unescape(vars2[0])]=unescape(vars2[1]);
}





function nav2(loc) {
    var pos, o = document.compatMode=="CSS1Compat" ? document.documentElement : document.body;
    pos = o.scrollTop;
    location.href = loc + "?pos=" + pos;
}

window.onload=function(){
  if(_GET['pos'])window.scrollTo(0,_GET['pos']);
}


</script>
</head><body>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>vv
  <a href="2.html" onclick="nav2(this.href);return false">LINK</a>

</body></html>
Avatar billede mclemens Nybegynder
28. august 2006 - 13:49 #8
(er først tilbage iaften...)
Avatar billede ofirpeter Nybegynder
28. august 2006 - 15:15 #9
Okay, det ser ud til at virke super.

Hvordan får jeg det lavet sådan at jeg kan lave en header på et php script som ser således ud:

header("location: side.php?pos=???")

Altså hvordan får jeg positionskordinaterne ud som en php variabel?
Avatar billede olebole Juniormester
28. august 2006 - 15:29 #10
header("location: side.php?pos=".$_GET["pos"]);
exit;
Avatar billede ofirpeter Nybegynder
28. august 2006 - 18:40 #11
Det var nu eller helt det jeg mente.
Den funktion kræver at der allerede er sat en Get variabel.

Jeg ville gerne at man f.eks. skulle trykke en submit knap, køre noget php kode (database kald) og herefter sende brugeren videre med pos.
Avatar billede ofirpeter Nybegynder
28. august 2006 - 21:22 #12
Altså noget i stil med:

if(isset($_request["submit"])){
mysql_query("INSERT ---");
header("location: sammeside.php?get=??(Noget javascript der finder positionen");
}
Avatar billede olebole Juniormester
29. august 2006 - 12:37 #13
"Den funktion kræver at der allerede er sat en Get variabel." ... Ja, men det var der også i både mit og mclemens første eksempler  ;o)

Vedrørende dit eget eksempel, så er det yderst uklogt at kalde et element (eller noget somhelst andet) for 'submit'. Det er at invitere problemer  :)

function nav2(f) {
    var o = document.compatMode=="CSS1Compat" ? document.documentElement : document.body;
    f.pos.value = o.scrollTop;
}

- og formen:

<form action="side.php">
    <input type="hidden" name="contxt" value="doSomething">
    <input type="hidden" name="pos">
    <button type="submit" onclick="nav2(this.form)>TEST</button>
</form>

if (isset($_GET["contxt"]) && $_GET["contxt"]=="doSomething") {
    mysql_query("INSERT ---");
    header("Location: sammeside.php?pos=".$_GET["pos"]);
    exit;
}
Avatar billede ofirpeter Nybegynder
29. august 2006 - 15:11 #14
Det ser rigtig godt ud. Både olebole og mclemens må meget gerne svare.
Avatar billede olebole Juniormester
29. august 2006 - 15:20 #15
;o)
Avatar billede mclemens Nybegynder
29. august 2006 - 16:43 #16
Ok, her er lige et også :o)
((( get dimsen i js er lige forkortet en smule herinde http://www.eksperten.dk/spm/729037#rid6403624 )))
Avatar billede mclemens Nybegynder
29. august 2006 - 16:50 #17
(((tag den i bunden af den nævnte tråd, hvis du skal bruge den)))
Avatar billede ofirpeter Nybegynder
31. august 2006 - 16:00 #18
Mange tak, det virker nu perfekt. Til stor glæde for mig og mine brugere :)
Avatar billede mclemens Nybegynder
31. august 2006 - 18:42 #19
Tak for point :)
Avatar billede olebole Juniormester
04. september 2006 - 12:40 #20
Tak for points herfra også  :)
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