Wie kann ich die URL ändern, ohne die Seite neu zu laden?

Gibt es eine Möglichkeit, die URL der aktuellen Seite zu ändern, ohne die Seite neu zu laden?

Ich würde gerne auf den Teil vor der Raute # zugreifen, wenn möglich.

Ich muss nur den Teil nach der Domäne ändern, also ist es nicht so, als würde ich gegen die Cross-Domain-Richtlinien verstoßen.

 window.location.href = "www.mysite.com/page2.php";  // Sadly this reloads

Hinweis: Wenn Sie mit einem HTML5-Browser arbeiten, sollten Sie diese Antwort ignorieren. Dies ist jetzt möglich, wie in den anderen Antworten zu sehen ist.

Es gibt keine Möglichkeit, die URL im Browser zu ändern, ohne die Seite neu zu laden. Die URL gibt an, was die zuletzt geladene Seite war. Wenn Sie sie ändern (document.location), wird die Seite neu geladen.

Ein offensichtlicher Grund ist, dass Sie eine Seite auf www.mysite.com schreiben, die wie eine Anmeldeseite einer Bank aussieht. Dann ändern Sie die URL-Leiste des Browsers auf www.mybank.com. Der Benutzer wird sich nicht bewusst sein, dass er in Wirklichkeit auf www.mysite.com schaut.

Kommentare (10)

Jede Änderung des Ortes (entweder window.location oder document.location) führt zu einer Anfrage an die neue URL, wenn Sie nicht nur das URL-Fragment ändern. Wenn Sie die URL ändern, ändern Sie die URL.

Verwenden Sie serverseitige URL-Rewrite-Techniken wie Apache's mod_rewrite, wenn Ihnen die URLs, die Sie derzeit verwenden, nicht gefallen.

Kommentare (2)

Vorausgesetzt, Sie versuchen nicht, etwas Bösartiges zu tun, kann alles, was Sie mit Ihren eigenen URLs machen möchten, mit htaccess herbeigezaubert werden.

Kommentare (2)