Wie deaktiviere ich die BACK-Taste des Browsers (für alle Browser)?
asp.net
javascript
priyanka.sarkar
quelle
quelle
Antworten:
Diese Frage ist sehr ähnlich wie diese ein ...
Sie müssen erzwingen, dass der Cache abläuft, damit dies funktioniert. Platzieren Sie den folgenden Code auf Ihrem Seitencode dahinter.
quelle
Deaktivieren Sie das erwartete Browserverhalten nicht.
Stellen Sie sicher, dass Ihre Seiten die Möglichkeit haben, dass Benutzer ein oder zwei Seiten zurückgehen. Versuchen Sie nicht, ihre Software zu lähmen.
quelle
Ich habe mir einen kleinen Hack ausgedacht, der die Zurück-Schaltfläche mit JavaScript deaktiviert. Ich habe es auf Chrome 10, Firefox 3.6 und IE9 überprüft:
Was macht es?
Aus den Kommentaren:
Dieses Skript nutzt die Tatsache, dass Browser berücksichtigen, was nach dem "#" -Zeichen in der URL als Teil des Browserverlaufs steht. Dies bewirkt Folgendes: Wenn die Seite geladen wird, wird der URL "# 1" hinzugefügt. Nach 50 ms wird die "1" entfernt. Wenn der Benutzer auf "Zurück" klickt, ändert der Browser die URL wieder auf den Stand vor dem Entfernen der "1", ABER - es handelt sich um dieselbe Webseite, sodass der Browser die Seite nicht neu laden muss. - Yossi Shasho
quelle
Andere haben den Ansatz gewählt, "Tu das nicht" zu sagen, aber das beantwortet die Frage des Posters nicht wirklich. Nehmen wir einfach an, dass jeder weiß, dass dies eine schlechte Idee ist, aber wir sind gespannt, wie es trotzdem gemacht wird ...
Sie können die Zurück-Schaltfläche im Browser eines Benutzers nicht deaktivieren, aber Sie können festlegen, dass Ihre Anwendung unterbrochen wird (zeigt eine Fehlermeldung an, bei der der Benutzer neu beginnen muss), wenn der Benutzer zurückkehrt.
Ein Ansatz, den ich dafür gesehen habe, besteht darin, ein Token für jede URL in der Anwendung und in jedem Formular zu übergeben. Das Token wird auf jeder Seite neu generiert, und sobald der Benutzer eine neue Seite lädt, werden alle Token von vorherigen Seiten ungültig.
Wenn der Benutzer eine Seite lädt, wird auf der Seite nur angezeigt, ob das richtige Token (das allen Links / Formularen auf der vorherigen Seite zugewiesen wurde) an diese Seite übergeben wurde.
Die von meiner Bank bereitgestellte Online-Banking-Anwendung ist wie folgt. Wenn Sie die Schaltfläche "Zurück" verwenden, funktionieren keine Links mehr und es können keine Seiten neu geladen werden. Stattdessen wird ein Hinweis angezeigt, dass Sie nicht zurückkehren können und von vorne beginnen müssen.
quelle
Während ich selbst nach der Antwort suche, ist "Best Practice" ... veraltet ... genau wie Browser. (Wirklich Browser sind hässliche Fossilien)
Die beste / sicherste Lösung wäre, dass Browser eine Methode / Anforderung implementieren, bei der der Benutzer der Seite die Möglichkeit geben kann, die Benutzeroberfläche zu steuern.
Warum? Weil ich für mein aktuelles Projekt eine zu 100% aus JavaScript erstellte und kontrollierte Oberfläche baue. Und die Schaltflächen "Zurück" haben keinen Platz in meinem Projekt, da es keinen Seitenwechsel gibt. (Dh verdammt schnell und keine Seitenblitze wegen einer Aktualisierung. Genau wie bei einer echten Anwendung!)
Ich weiß, warum die Fähigkeit, die Schnittstelle zu "highjacken", nicht vorhanden ist, und ich verstehe es. Aber zumindest sollten wir die Möglichkeit haben, es vom Browser anzufordern! Nun, das wäre wirklich "Best Practice" ohne die Highjack-Gefahren.
Aber Browser sind Browser. Ich erwarte nicht, dass diesbezüglich etwas Aufregendes passiert.
quelle
Ich habe nach derselben Frage gesucht und auf einer Site folgenden Code gefunden. Dachte, es hier zu teilen:
Wie von den oben genannten Benutzern erwähnt, ist dies jedoch niemals eine gute Vorgehensweise und sollte aus allen Gründen vermieden werden.
quelle
Wenn Sie sich auf clientseitige Technologie verlassen, kann diese umgangen werden. Javascript kann beispielsweise deaktiviert sein. Oder der Benutzer führt möglicherweise ein JS-Skript aus, um Ihre Einschränkungen zu umgehen.
Ich vermute, Sie können dies nur tun, indem Sie die Benutzersitzung serverseitig verfolgen und den Benutzer / Browser (wie in Server.Transfer, nicht Response.Redirect) auf die gewünschte Seite umleiten.
quelle
quelle
Es gab einige verschiedene Implementierungen. Es gibt eine Flash-Lösung und einige Iframe / Frame-Lösungen für IE. Schau dir das an
http://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps
Übrigens: Es gibt viele triftige Gründe, eine Zurück-Schaltfläche zu deaktivieren (oder zumindest 1 Schritt zu verhindern). Sehen Sie sich Google Mail als Beispiel an, das die im obigen Artikel beschriebene Hash-Lösung implementiert.
Google "Wie Ajax den Zurück-Button kaputt gemacht hat" und Sie finden zahlreiche Artikel zu Benutzertests und der Gültigkeit des Deaktivierens des Zurück-Buttons.
quelle
Ich hatte auch das gleiche Problem, verwenden Sie diese Java-Skript-Funktion auf Head-Tag oder in, es funktioniert zu 100% gut, würde Sie nicht zurücklassen.
quelle
Versuchen Sie diesen Code. Hat für mich gearbeitet. Grundsätzlich wird der Hash geändert, sobald die Seite geladen wird. Dadurch wird die Seite mit dem letzten Verlauf geändert, indem der URL "1" hinzugefügt wird. Wenn Sie also auf die Schaltfläche "Zurück" klicken, wird jedes Mal auf dieselbe Seite umgeleitet.
quelle
Sie sollten Posts mit ordnungsgemäßem Ablauf und zwischengespeicherten Headern verwenden.
quelle
Anstatt zu versuchen, die Zurück-Schaltfläche des Browsers zu deaktivieren, ist es besser, sie zu unterstützen. .NET 3.5 kann sehr gut mit den Schaltflächen zum Zurück- (und Vorwärts-) Schalten des Browsers umgehen. Suche mit Google: "Scriptmanager EnableHistory". Sie können steuern, welche Benutzeraktionen einen Eintrag zum Browserverlauf hinzufügen (ScriptManager -> AddHistoryPoint) und Ihre ASP.NET-Anwendung ein Ereignis empfängt, wenn der Benutzer auf die Schaltflächen Zurück / Weiter des Browsers klickt. Dies funktioniert für alle bekannten Browser
quelle
Das Deaktivieren der Zurück-Taste ist weltweit in der Tat eine schlechte Praxis. In bestimmten Situationen ist die Funktion der Zurück-Taste jedoch nicht sinnvoll.
Hier ist eine Möglichkeit, unerwünschte Navigation zwischen Seiten zu verhindern:
Startseite (Datei
top.php
):Sekundärseite (Datei
secondary.php
):Der Effekt besteht darin, dass Sie mithilfe Ihrer eigenen Links von der oberen Seite zur zweiten Seite und zurück navigieren (z. B. Abbrechen). Nach der Rückkehr zur obersten Seite wird jedoch verhindert, dass die Schaltfläche "Zurück" des Browsers zur sekundären Seite navigiert.
quelle
Sogar ich hatte vorher die gleiche Situation ... und hatte keine Hilfe. Probieren Sie diese Dinge aus, vielleicht funktionieren sie für Sie
im
<head>
Tag der Anmeldeseite :In der Abmeldeschaltfläche habe ich Folgendes getan:
und auf der Anmeldeseite habe ich den Fokus auf das Textfeld Benutzername wie folgt gelegt:
hoffe das hilft ... :) jemand bringt mir bitte bei, wie man diese Seite bearbeitet ...
quelle
Wenn Sie die Lösch- und Rücktaste in Ihrer Web-App sanft unterdrücken müssen, damit die Seite beim Bearbeiten / Löschen von Elementen nicht unerwartet umgeleitet wird, können Sie diesen Code verwenden:
quelle
Versuchen Sie diesen Code. Sie müssen diesen Code nur auf der Masterseite implementieren und er funktioniert auf allen Seiten für Sie
quelle
Das Problem mit Yossi Shashos Code ist, dass die Seite alle 50 ms nach oben rollt. Also habe ich diesen Code geändert. Jetzt funktioniert es einwandfrei auf allen modernen Browsern, IE8 und höher
quelle
Das scheint bei uns funktioniert zu haben.
quelle
quelle