
leora
Ich habe den folgenden Code, der die Seiten innerhalb von JavaScript ändert:
var newUrl = [some code to build up URL string];
window.location.replace(newUrl);
Die oberste URL wird jedoch nicht geändert. Wenn also jemand auf die Schaltfläche „Zurück“ klickt, wird nicht zur vorherigen Seite zurückgekehrt.
Wie kann ich JavaScript dazu bringen, auch die Top-URL zu ändern, damit der Zurück-Button des Browsers funktioniert.

glebm

Kirsche
Einfache Zuordnung zu window.location
oder window.location.href
sollte gut sein:
window.location = newUrl;
Ihre neue URL bewirkt jedoch, dass der Browser die neue Seite lädt, aber es hört sich so an, als ob Sie die URL ändern möchten, ohne die aktuelle Seite zu verlassen. Dazu haben Sie zwei Möglichkeiten:
-
Verwenden Sie den URL-Hash. Sie können zum Beispiel von gehen example.com
zu example.com#foo
ohne eine neue Seite zu laden. Sie können einfach einstellen window.location.hash
um dies einfach zu machen. Dann sollten Sie sich HTML5 anhören hashchange
Ereignis, das ausgelöst wird, wenn der Benutzer die Zurück-Schaltfläche drückt. Dies wird in älteren Versionen von IE nicht unterstützt, aber überprüfen Sie es jQuery-BBQwodurch dies in allen Browsern funktioniert.
-
Sie können den HTML5-Verlauf verwenden, um den Pfad zu ändern, ohne die Seite neu zu laden. Dadurch können Sie von wechseln example.com/foo
zu example.com/bar
. Die Verwendung ist einfach:
window.history.pushState("example.com/foo");
Wenn der Benutzer “Zurück” drückt, erhalten Sie die Fenster popstate
Ereignis, das Sie sich leicht anhören können (jQuery):
$(window).bind("popstate", function(e) { alert("location changed"); });
Leider wird dies nur von sehr modernen Browsern wie Chrome, Safari und Firefox 4 Beta unterstützt.
Wenn Sie nur den relativen Pfad aktualisieren möchten, können Sie dies auch tun
window.location.pathname="/relative-link"
"http://domain.com" -> "http://domain.com/relative-link"
Das wird es tun:
window.history.pushState(null,null,'https://www.google.com');
<script>
var url= "http://www.google.com";
window.location = url;
</script>
9957100cookie-checkWie kann ich die aktuelle URL ändern?yes