Wie kann ich die aktuelle URL ändern?

Lesezeit: 2 Minuten

Wie kann ich die aktuelle URL andern
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.

Wie kann ich die aktuelle URL andern
glebm

document.location.href = newUrl;

https://developer.mozilla.org/en-US/docs/Web/API/document.location

1647138908 11 Wie kann ich die aktuelle URL andern
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:

  1. 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.

  2. 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.

  • Die .replace-Methode für Zeichenfolgen ändert nicht die Zeichenfolge, auf die sie angewendet wurde, sondern generiert eine neue Zeichenfolge. – der window.location.replace() Methode ist nicht die gleiche wie die String.prototype.replace() Methode, weil window.location ist kein String (es ist ein Objekt). window.location.replace() ersetzt die aktuelle URL durch eine neue und überschreibt dabei den Eintrag der alten URL in der Historie.

    – Andi E

    2. Oktober 2010 um 18:50 Uhr


  • Danke für die Korrektur, ich werde meine Antwort entsprechend aktualisieren.

    – Kirsche

    6. Oktober 2010 um 2:10 Uhr

  • Rückblickend ist dies bei weitem die beste Antwort. document.location.href hat nichts auf pushState

    – büley

    15. Februar 2011 um 1:21 Uhr

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> 

995710cookie-checkWie kann ich die aktuelle URL ändern?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy