majaao: Scrollposition speichern und wieder abrufen

Hallo,

ich habe eine Frage zum Abrufen der aktuellen Scrollposition. Mit der folgenden Funktion lässt sich auf statische Weise zu einem bestimmten Punkt auf einer Seite scrollen:

function Pos100 () {
  window.scrollTo(100, 100);
}

Und hiermit lässt sich die aktuelle Scrollposition bestimmen: window.pageYOffset

Wie kann ich nun beides nutzen: Wenn ich auf einer langen Seite an einer weiter unten liegenden Stelle ein Feld ediere, wie kann ich den Y-Wert dieser Stelle übergeben, damit ich nach dem Submit dorthin gelange.

Vielen Dank für jede Antwort auf diese Newcomerfrage

majaao

  1. hi,

    Und hiermit lässt sich die aktuelle Scrollposition bestimmen: window.pageYOffset

    Wenn du das browserübergreifend haben willst, wird es etwas aufwendiger.

    Wie kann ich nun beides nutzen: Wenn ich auf einer langen Seite an einer weiter unten liegenden Stelle ein Feld ediere, wie kann ich den Y-Wert dieser Stelle übergeben, damit ich nach dem Submit dorthin gelange.

    Das wäre ja nur dann überhaupt ansatzweise sinnvoll, wenn die Formularantwort-Seite noch genauso "lang" ist, wie die Eingabeseite - wenn also zumindest über dem Formular keinerlei neue Inhalte hinzukommen - andernfalls würde diese Position ja gar nicht mehr stimmen.

    Wenn du das nach wie vor für sinnvoll hältst, dann lese die aktuelle Position mit JS aus, schreibe sie in ein verstecktes Formularfeld - und generiere dann serverseitig den JS-Code, der nach dem Laden der Seite wieder an diese Position springt.

    Oder, mach es auf die konventionellere Weise:
    Nutze schlicht und einfach einen Anker.

    Damit kommst du zwar nicht unbedingt zu der Position, bis zu der der Nutzer gescrollt hatte - aber du könntest den Anker ja bspw. so setzen, dass er auf den Inhaltsteil verweist, der möglicherweise durch das Absenden des Formulars neu hinzugeneriert wurde.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Wenn ich beim Aktualisieren der Seite nach dem Submit einen Anker aufrufen möchte, sollte ich dies wohl über location.hash im body versuchen:

      onLoad="location.hash='ankername'"

      Diese Zeile  funktioniert bei mir (Max OS X) aber nur im MSIE.
      Safari: auch bei location.hash permanentes Laden der Seite
      Firefox: kein parmantes Laden, aber auch kein Springen zum Anker

      Wie muss ich die Zeile im body umschreiben ???

      1. hi,

        Wenn ich beim Aktualisieren der Seite nach dem Submit einen Anker aufrufen möchte, sollte ich dies wohl über location.hash im body versuchen

        Wenn du die Seite über das Absenden eines Formulars "aufrufst" - warum gibst du dann nicht schon in der Zieladresse des Formulars den Anker mit an?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }