Wie gehe ich mit der Browser-Zurück-Schaltfläche des Benutzers um?

8
  1. Der Benutzer besucht die Seite A und klickt ein paar Mal herum, um den Seitenstatus anzupassen, wenn er / sie geht.
  2. Seite A leitet Benutzer zu Seite B
  3. um
  4. Der Nutzer klickt auf die Schaltfläche "Zurück" des Browsers, die Seite A wird erneut im Browser angezeigt

Ich muss in Schritt 3 eine Bereinigung der Benutzeroberfläche durchführen.

Wie erfasse ich dieses Ereignis in Page A?

    
Brian Webster 11.08.2011, 15:30
quelle

3 Antworten

1

Abgesehen davon, dass Sie möglicherweise einen Cookie gesetzt haben, können Sie aufgrund einer Sicherheitsbeschränkung des Browsers nicht darauf zugreifen. Eine Umgehung wäre es, zu überprüfen, ob der Benutzer von der Seite über OnForeOnload oder OnLoun Fire weg navigiert.

    
RobB 11.08.2011 15:35
quelle
1

Wäre es in Ihrem Szenario möglich, den URL-Hash zu verwenden, um zu Seite B zu navigieren und AJAX und jQuery zu verwenden, um die neue Seite zu laden? Daher verlässt der Browser die Seite nicht wirklich. Wenn der Benutzer zurück navigiert, wird lediglich der URL-Hashwert geändert. Sie könnten dann das hashchange -Ereignis erfassen, um zu sehen, ob der Benutzer zurück zur Seite A navigiert ist.

    
Connell 11.08.2011 15:51
quelle
1

Ich werde ein paar Annahmen machen, um einen Weg zu präsentieren, der nicht vollständig auf Javascript angewiesen ist:

  1. Sie haben in den Kommentaren zu einer anderen Antwort bemerkt, dass dies eine ASP.NET-App ist. Ich gehe davon aus, dass Sie nur die Zurück-Taste interessiert, wo es von einer anderen Seite in Ihrer ASP.NET-App gedrückt wird.
  2. Sie steuern den serverseitigen Code, der im ASP.NET-Code-Behind ausgeführt wird, sowohl für die betreffende Seite als auch für die Seite (n), von der / denen sie "zurück" gehen muss.

Wenn beide Bedingungen erfüllt sind, sollten Sie eine Sitzungsvariable ! Setzen Sie die aktuelle Seite in eine currPage-Variable, die von der Sitzung auf allen zugehörigen Seiten verwaltet wird. Wenn die Seite dann geladen wird, überprüfen Sie diese und verwenden Sie sie, um entweder die Art und Weise einzustellen, wie die Seite direkt angezeigt wird, oder um einen Wert in ein verstecktes Feld / Eingabe / Div zu schreiben, das Ihr Javascript lesen und verwenden kann, um entsprechend zu reagieren. p>

Wenn Sie die JS-Lese- und Ausführungsroute verwenden, sollten Sie testen, ob die Ereignisse nach einem Load-from-Back-Button in allen Browsern ordnungsgemäß ausgelöst werden. Wie in der Link von Rionmonster erwähnt, können manchmal Onload-Ereignisse auftreten nicht feuern nach einem Zurück-Knopf. Wenn Sie Probleme sehen, dann verwenden Sie die dort erwähnten Tricks, um es zu umgehen.

Diese Art von Lösung sollte für jede Webanwendung funktionieren, die serverseitigen Code verwendet, der mit Session-Variablen interagieren kann (z. B. funktioniert es auch für PHP, Python und viele andere).

Hinweis: Es besteht die Möglichkeit, dass dies nicht ganz so elegant ist, wie es klingt. In vielen Fällen ziehen Browser möglicherweise keine neue Seite vom Server, nachdem die Zurück-Taste gedrückt wurde. Wenn sich beim Testen herausstellt, dass dies ein Problem darstellt, müssen Sie möglicherweise einige AJAX-Techniken anwenden, um die Informationen, die nach dem Zurück-Drücken der Taste in das JS geladen werden, zu füllen.

    
Jeffrey Blake 12.08.2011 13:31
quelle

Tags und Links