2009-07-06 15 views
2

Nachdem ich ein Formular gesendet habe, wird die Position an den Anfang des Fensters zurückkehren. Anstatt zur vorherigen Position zu gehen.Zurück Schaltfläche Bildlaufposition

Wenn Sie scrolltop verwenden, um sich an die Position zu erinnern, oder haben Sie eine bessere Idee?

Ich benutze Sachen wie PHP5, jQuery und MySQL.

+0

Was bedeutet das Formular aus und wie übermittle Sie es? Referenzieren Sie ein Fragment oder ähnliches? – Gumbo

Antwort

1

Check this out:

<script type="text/javascript" src="der/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="der/jquery.cookie.js"></script> 
<script type="text/javascript"> 
function get_position(){ 
    var top_position = document.documentElement.scrollTop; 
    $.cookie('pos', top_position); 
}; 
function set_position(){ 
    var top_position = $.cookie('pos'); 
    window.scrollTo(0,top_position) 
    $.cookie('pos', null); 
}; 
</script> 
</head> 
<body onload="set_position();"> 
. 
. 
. 
<form method="post" action="" onsubmit="return get_position();"> 
</form> 
0

Wenn Sie Ihr Formular über Ajax abschicken, ändert sich nichts (vielleicht ist das eine Option, wenn Sie trotzdem auf die gleiche Seite umleiten). Sie können die Position in einem Cookie auch über JavaScript vor dem Senden und Abrufen speichern und den Wert festlegen, wenn die neue Seite geladen wird (z. B. mit jQuery scrollTo). Oder Sie setzen einfach einen Anker in Ihrem Formularfeld (was sehr wahrscheinlich die letzte Position ist, zu der der Benutzer gescrollt hat) und blättern zurück zum Formular nach dem Senden.

1

Erstellen Sie zuerst einen Anker auf Ihrer Seite, auf den der Besucher zugreifen soll, wenn er das Formular abschickt.

Dann in Ihrem Formular Aktion oder Punkt erstellen mit dem Anker

zum Beispiel in Datei

<div id="view_from_here" >..... 

dann

<form action="myfile.php#view_from_here" .... 
Verwandte Themen