Verfolgen Sie, wann der Benutzer im Browser auf die Schaltfläche „Zurück“ klickt

StackOverflow https://stackoverflow.com/questions/55871

  •  09-06-2019
  •  | 
  •  

Frage

Kann erkannt werden, wenn der Benutzer auf die Zurück-Schaltfläche des Browsers klickt?

Ich habe eine Ajax-Anwendung und wenn ich erkennen kann, wann der Benutzer auf die Schaltfläche „Zurück“ klickt, kann ich die entsprechenden Daten wieder anzeigen

Jede Lösung, die PHP und JavaScript verwendet, ist vorzuziehen.Verdammt, eine Lösung in jeder Sprache ist in Ordnung, ich brauche nur etwas, das ich in PHP/JavaScript übersetzen kann

Bearbeiten:Von unten ausschneiden und einfügen:

Wow, alles hervorragende Antworten.Ich würde gerne Yahoo verwenden, verwende aber bereits Prototype- und Scriptaculous-Bibliotheken und möchte keine weiteren Ajax-Bibliotheken hinzufügen.Aber es nutzt iFrames Das gibt mir einen guten Hinweis, meinen eigenen Code zu schreiben.

War es hilfreich?

Lösung

Es gibt mehrere Möglichkeiten, es zu tun, obwohl einige nur in bestimmten Browsern funktionieren. Eines, das ich aus der Spitze von meinem Kopf weiß, ist eine winzige fast unsichtbare iframe auf der Seite einbetten. Wenn der Benutzer die Zurück-Taste trifft, wird der iframe navigiert zurück, die Sie erkennen und dann die Seite aktualisieren. Hier ist eine andere Lösung.

Sie könnten auch Quelltext anzeigen auf so etwas wie gmail gehen und sehen, wie sie es tun.

Hier ist eine Bibliothek für das, was Sie suchen nach die Art und Weise

Andere Tipps

Einer meiner Lieblings-Frameworks dafür ist Yahoo! 'S Browser History Manager . Sie registrieren Ereignisse und ruft Sie zurück, wenn der Benutzer in diesem Zustand zurück kehrt. Und wenn Sie wollen lernen, wie es funktioniert, hier ein Spaß Blog-Eintrag über die Entscheidungen Yahoo! gemacht , wenn es zu entwerfen.

Es gibt keine Möglichkeit zu sagen, wenn ein Benutzer die Zurück-Taste drückt klickt der Rücktaste wieder in dem Browser gehen, aber es gibt auch andere Ereignisse, die in einer bestimmten Reihenfolge geschehen, die nachweisbar sind. Dieses Beispiel rel="nofollow javascript eine recht gute Methode hat Befehle zur Erkennung zurück:

Verwendung von Cookies oder Referrer Seiten

Der traditionelle Weg ist jedoch Benutzer Bewegung durch Ihre Website zu verfolgen. Wenn der Benutzer auf Seite A geht, dann Seite B, wieder auf Seite A erscheint dann (vor allem, wenn keine Verbindung auf B nach A gibt es), dann wissen Sie, sie ging zurück - A dies erkennen kann, und leiten sie oder sonst

.

Die Yahoo User Interface Bibliothek, mein persönlicher Favorit clientseitige JS-Bibliothek, verfügt über eine hervorragende Browser History rel="nofollow Manager das tut genau das, was Sie für fragen.

Der einfachste Weg, um zu überprüfen, ob Sie zurück in eine im Cache gespeicherte Version Ihrer Seite kommen, die aufgefrischt werden muss, ist ein verstecktes Eingabeelement hinzufügen, die im Cache gespeichert werden, und Sie können überprüfen, ob sie noch den Standardwert haben.

Einfach den folgenden in Ihrem Körper-Tag. Ich lege meine direkt vor dem End-Tag.

<input type="hidden" id="needs-refresh" value="no">
<script>
    onload=function(){
        var e = document.getElementById("needs-refresh");
        if (e.value === "yes")
            location.reload();
        e.value = "yes";
    }
</script>

Ich habe eine Variable $wasPosted in $_SESSION mit Wert false.

Alle meine Beiträge gehen über die gleiche PHP-Datei, und legen Sie $wasPosted auf true.

Alle header(location:) Anfragen voran werden durch Setzen $wasPosted true.

Wenn $wasPosted wird false dann die Seite wurde nach der Verwendung der rückwärts oder vorwärts Tasten geladen.

Das Dojo Toolkit hat Funktionalität mit dieser in JavaScript beschäftigen. Ich glaube nicht, gibt es eine gute Möglichkeit, es in reiner PHP zu behandeln.

Hier ist die docs Seite haben sie: http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/back-button-undo

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top