2009-11-11 6 views
5

Got a window.history.go(1) zu stoppen der Benutzer die Zurück-Taste drücken, aber fragte mich, ob ich überprüfen könnte, ob ein Forward-Verlauf existiert, bevor ich es tun, so kann ich ein Popup-Warnung den Benutzer nicht auf die drücken Zurück-Button.Wie kann ich überprüfen, ob in Javascript ein Weiterleitungsverlauf vorhanden ist? (Deaktivierung zurück Knopf)

Ich weiß, dass Sie die Verlaufslänge erhalten können, aber gibt es eine Möglichkeit, die aktuelle Position in der Verlaufsliste zu erhalten? Oder eine andere Art, dies zu tun ...

+6

Wenn Sie denken, dass Sie die Back-Taste brechen müssen, tut Ihre Website etwas sehr falsch auf einer grundlegenden Ebene, die Sie versuchen sollten, zu beheben, anstatt Zeit damit zu verschwenden. – bobince

+2

Oh, absolut, es ist ein hässlicher Hack für ein viel größeres Problem, aber wenn Sie die 60+ Seiten von Legacy-Code, für den ich mit einer vorrangigen Aufgabe, die als "Notfall" gekennzeichnet ist, dann bin mein Gast;) – NibblyPig

+0

Senden Sie Ihre Notfall-Taskmaster auf diese Seite. Vielleicht werden sie das Licht sehen. –

Antwort

1

AFAIK Sie können nicht auf den Verlauf von JavaScript zugreifen. Es wird eine Sicherheitslücke sein und die meisten Browser erlauben das nicht. Wahrscheinlich gibt es eine Problemumgehung in IE mit ActiveX.

diesen Eintrag gefunden, die

window.history

Es gibt eine nächste Eigenschaft für Sie nützlich sein könnten.

Gibt die URL des nächsten Elements in die Sitzung Geschichte Diese Eigenschaft auf dem Web- Inhalt nicht verfügbar ist und nicht von anderen Browsern unterstützt.

Aus Sicherheitsgründen werden die Geschichte Objekt ist nicht der nicht-privilegierte Code, um die URLs für den Zugriff auf von anderen Seiten im Sitzungsverlauf aber es erlaubt es den Sitzungsverlauf zu navigieren.

Es gibt keine Möglichkeit, die Sitzung Verlauf zu löschen oder die Rück-/Vorwärts-Navigation aus nicht privilegiertem Code zu deaktivieren. Die nächstgelegene verfügbare Lösung ist location.replace() -Methode, die das aktuelle Element des Sitzungsverlaufs mit der angegebenen URL ersetzt.

+0

Ja, es sieht so aus, aber es ist auch verwirrend, dass man damit die Anzahl der Elemente in der Liste und solche Sachen bekommen kann. – NibblyPig

+0

Als Antwort auf Ihre Bearbeitung sehe ich nicht, wie es eine Sicherheitslücke ist, um zu überprüfen, ob eine Funktion, die Sie aufrufen möchten, Erfolg hat oder nicht ... – NibblyPig

+0

Es geht nicht um einen Funktionsaufruf, sondern um den Benutzer Sicherheit wird einer unbekannten Website ausgesetzt. – rahul

0

Brechen Sie nicht die Zurück- (oder Vorwärts-) Taste.

  1. Sie wissen nicht genau, was sie jeden möglichen Benutzer-Setup, ohne zu wissen (einschließlich Plug-in, etc.) tun könnten
  2. Sie haben noch etwas milde intelligent (zB Ihre Datenbank nicht trash) tun, wenn Scripting deaktiviert oder deaktiviert, dann wieder aktiviert usw.
  3. Da Sie bereits mit # 2 umgehen müssen, machen Sie sich nicht einmal Gedanken darüber, wie Sie # 1 überall für jeden tun und mehr Zeit verbringen, um # 2 besser zu machen .
  4. Jetzt funktioniert Ihre Seite mit der Zurück-Taste.
Verwandte Themen