Beim Neuladen zurückspringen

03/05/2012 23:20 epiTR#1
Huhu,
ich habe ein Frage bezüglich Web Development.
Ich habe eine Seite, bei der es manchmal sinnvoll ist manuell und manchmal via Sprungmarken zu navigieren.
Falls die Seite jetzt neu aufgerufen wird (z.B. durch ein Formular), dann springt er ja logischer Weise immer nach oben.

Bekomme ich das irgendwie hin, dass er immer genau(!) an die Stelle springt, an die der Benutzer davor war.
Mir fällt als einzige Lösung ein, dass ich immer Sprungmarken über jedes Formular mache und danach zurück an dieses Formular springe.

Da das Ganze vielleicht etwas unverständlich klingt, habe ich schnell ne Testseite gemacht:
03/06/2012 05:54 Fratyr#2
Du kannst mit Javascript die aktuelle URL auslesen, document.URL.replace(/^(.*)#/, '');
würde dir also deine aktuelle Sprungmarke auslesen, bevor du dein Forumar absendest,
übergibst du an deine form den neu generierten Verweis, also from action + '#' + document.URL.replace(/^(.*)#/, '').
Ich hoffe das ich dich richtig verstanden habe :)
03/06/2012 16:35 PseudoPsycho#3
Ich würde zum Formular noch ein Feld hinzufügen:
HTML Code:
<input type="hidden" name="position" id="position" value="">
und dann via jQuery ausfüllen:
Code:
$(document.body).scroll(function(){
$('#position').attr('value', $(window).scrollTop()); });
Deinem Text entnehme ich mal, dass das Formular an die aktuelle Seite gesendet wird..? Du könntest jedenfalls mit PHP in den Head-Bereich schreiben:
PHP Code:
<script type="application/javascript">
$(window).scrollTop(<?php echo $_POST['position']; ?>);
</script>
03/06/2012 17:08 epiTR#4
Ich wollte eigentlich wissen, ob das irgendwie ohne Sprungmarken möglich ist, da er dann auch zwischen die Zeilen springen könnte, aber das mit jQuery und dem zusätzlichen Attribute ist eine gute Lösung, danke.
03/06/2012 17:16 PseudoPsycho#5
Quote:
Originally Posted by epiTR View Post
Ich wollte eigentlich wissen, ob das irgendwie ohne Sprungmarken möglich ist, da er dann auch zwischen die Zeilen springen könnte, aber das mit jQuery und dem zusätzlichen Attribute ist eine gute Lösung, danke.
Sprungmarken haben einfach einen entscheidenden Nachteil:
Man klickt nun z.B. auf #top, scrollt bis ans Ende der Seite. Wenn die Seite dann neugeladen wird, landet man letztlich wieder oben... xD
Desweiteren kann man mit meiner Methode an die genaue Position springen, mit Sprungmarken nur ganz grob...
Hilet' dies daher für die bessere Variante.