Browser stellen eine Liste der Seiten bereit, die innerhalb einer Clientsitzung über das Objekt window.history
aufgerufen wurden. Client-Code kann damit durch die Liste vor- und zurückgehen (mit history.back()
, history.forward()
und history.go()
).So finden Sie den aktuellen Standortindex in der Browserhistorie
Aber wie kann der Client-Code wo in der Geschichte der aktuellen Seite befindet? Wenn der Client beispielsweise die Seiten A, B und C aufruft, enthält der Verlauf drei Elemente, und das aktuelle Verlaufselement (oder der aktuelle Status) wird für Seite C verwendet. Wenn der Benutzer dann auf die Schaltfläche "Zurück" klickt, wird der aktuelle Seite ist jetzt B. Allerdings ist die history.length
immer noch 3, was die Tatsache widerspiegelt, dass insgesamt drei Seiten besucht wurden. Wie stellen wir fest, dass der Client derzeit in Position 2 in der Geschichte ist? Ein spezifischeres Problem ist, dass ich bestimmen möchte, ob ich am ersten Element in der Geschichte positioniert bin, so dass ich eine Schaltfläche 'Schließen' anzeigen kann, die die Seite schließt (unter der Annahme, dass window.opener
nicht null ist); An jeder anderen Stelle in der Geschichte möchte ich stattdessen eine Schaltfläche "Zurück" anzeigen, die zur vorherigen Seite führt.
Dies scheint eine merkwürdige Unterlassung zu sein, dass es keinen 'aktuellen Index' in das Historienobjekt gibt.
Hinweis: Dies ist ähnlich wie question #12895940, unterscheidet sich aber dadurch, dass ich wirklich nur wissen muss, ob ich an der ersten Stelle in der Historie positioniert bin.
möglich Duplikat von [Finde heraus, wo in der Browserhistorie der Benutzer ist] (http://stackoverflow.com/questions/12895940/find-out-where-in-browserhistory-the-user-is) – duskwuff
As Es wurde im obigen Thema gesagt (@duskwuff), ich denke, es gibt keine Möglichkeit, dies in JavaScript zu tun, es sei denn, Sie erstellen etwas wie eine Web-Erweiterung, um den Verlauf "die ganze Zeit" zu verfolgen. Aber ich wette, das ist nicht die Lösung, nach der Sie suchen – lockedz