2010-01-05 5 views
14

Wenn der Benutzer Geschichte-zurück-1 geht ... wie erkenne ich das? Und dann, warnt "der Benutzer klickte zurück!"Wie erkennen, ob der Benutzer auf die Schaltfläche "Zurück" geklickt hat

Mit bindet (und jquery vorzugsweise)

+3

Alex abhängt, fragte Sie nur eine ähnliche Frage unter http://stackoverflow.com/questions/2008765/in-javascript-bevorzugt-jquery-how-do-i-add-etwas-zur-the-url-when-the-user Do not spam. –

Antwort

20

allgemein Sie können nicht (Browser-Sicherheitsbeschränkung). Sie können feststellen, ob der Benutzer von der Seite weg navigiert (onforeunload, onload fire), aber Sie können nicht sagen, wohin sie gegangen sind, es sei denn, Sie haben Ihre Seite so eingerichtet, dass sie erlaubt ist.

HTML5 führt die HTML5-Verlaufs-API ein; In übereinstimmenden Browsern wird das Ereignis onpopstate ausgelöst, wenn der Benutzer zu einer früheren "Seite" auf Ihrer Website zurück navigiert.

+0

Was ist damit? http://stackoverflow.com/questions/10462511/is-there-a-way-using-jquery-to-detect-the-back-button-being-pressed-cross-browse –

+1

Sie können Seiten so konstruieren Dieses Zurückschlagen ist zwar feststellbar, aber Sie können nur wissen, wohin sie gegangen sind, wenn sie zufällig auf eine andere Seite Ihrer Website (wo Sie das JavaScript steuern) navigieren. Wie konstruiert man ein solches Szenario? Wenn der Benutzer "PageA.htm" besucht, sendet er sie sofort an "PageB.htm" und wenn er "PageA.htm" erneut lädt, können Sie "erraten", dass er "Zurück" gedrückt hat. – EricLaw

6

Versuch:

window.onbeforeunload = function (evt) { 
    var message = 'Are you sure you want to leave?'; 
    if (typeof evt == 'undefined') { 
    evt = window.event; 
    } 
    if (evt) { 
    evt.returnValue = message; 
    } 
    return message; 
} 
+0

OnBeforeUnload wird auch ausgelöst, wenn der Benutzer zu einer anderen Site geht. – EricLaw

+0

Gibt es eine Möglichkeit, die Warnmeldung nicht anzuzeigen? –

2
window.onpopstate=function() 
{ 
    alert("Back/Forward clicked!"); 
} 
+5

Dies wird nicht ausgelöst, wenn Sie ** eine andere ** Seite besuchen und dann auf diese Seite zurückkehren. – Pacerier

-2

Auf der Seite, die Sie suchen, können Sie dieses Stück Code zum onLoad Ereignis fügen Sie die Seite sie waren zurück zu bewegen.

if(history.length>0)history.go(+1) 

Wenn Sie die Warnung dann

machen wollen
if(history.length>0)alert("the user clicked back!") 
+0

Arbeiten nicht für einzelne Seitenwebseiten. – ShrekOverflow

+0

Funktioniert für nichts. 'history.length> 0 'wird Ihnen auch dann true geben, wenn es eine brandneue Seite ist. Es gibt Ihnen die [gesamte Länge der Geschichte] (http://stackoverflow.com/a/9757655/632951) ** einschließlich ** der zurück und vorwärts Seiten. – Pacerier

0

Im Folgenden sind die Schritte Taste erkennen zurück klicken

  1. eine Maus Registrieren Ereignis auf Körper nach unten $('body').on('mousedown' ,'on all li');

    2. Stellen Sie nun eine Variable ein, wenn mousedown eintritt.

    3.Überprüfen Sie diese Variable, wenn sich Ihr Standort ändert.

IF Variable chages auf true bedeutet es cliked Liste sonst backbutton

Diese Arbeit in meiner usecase .Diese Lösung kann andere hilft, weil es auf App-Design