2010-11-03 16 views
8

Ist es mit JavaScript möglich, die URL des Browsers zu ändern, aber nicht die Seite zu verlassen?So ändern Sie die angezeigte URL im Browser, ohne die Seite zu verlassen

+0

Sie wollen den Text in der Adresszeile ändern, ohne tatsächlich dorthin zu gehen? – Adam

+0

Bitte suchen Sie zuerst die Website: http://stackoverflow.com/search?q=javascript+change+url+ – BGerrissen

+2

Mögliche Duplikat von * vielen * Fragen. Beispiel: [Ändern der URL mit jQuery, ohne die Seite erneut zu laden] (http://stackoverflow.com/questions/4013122/changing-the-url-with-jquery-without-reloading-the-page) – Robusto

Antwort

13

In älteren Browsern können Sie nicht die URL in der Adressleiste ändern, ohne die Seite zu verlassen. Sie können jedoch den Hash-Anteil der URL ändern, ohne die Seite zu verlassen. Das heißt, Sie können www.example.com zu www.example.com#new_text mit JavaScript window.location.hash = "new_text" ändern; alles nach dem # kann geändert werden.

In HTML5 gibt es jedoch eine neue Verlaufs-API, mit der Sie den Teil der URL nach der Domäne ändern können. Sie können also www.example.com nicht zu www.BankOfAmerica.com (aus Sicherheitsgründen) ändern, aber Sie können www.example.com/foo zu www.example.com/bar ändern.

history.pushState("object or string representing the state of the page", "new title", "newURL"); 

prüfen When can I use..., um zu sehen, welcher Browser HTML5 Sitzung Geschichte Managements unterstützen und die neue pushState Methode unterstützen.

Darüber hinaus gibt es eine JavaScript-Bibliothek, die die History-API in allen Browsern normalisiert und die URL in neuen Browsern ändert und den Hash-Teil für alte Browser verwendet. Siehe history.js.

+1

ja , Sie können. Ich weiß einfach nicht wie. Facebook macht es, aber natürlich sind sie Super-Programmierer. Edit: gerade herausgefunden, wie hier: http://stackoverflow.com/questions/6955430/change-url-on-ajax-request –

+0

@ Eduard Luca Danke für das zeigen mir, ich habe diese Antwort entsprechend aktualisiert. – Adam

0

Sie können alles nach der Raute ändern (#), da dies häufig in Ajax-Anwendungen wie der Google-Suche und dem neuen Twitter verwendet wird. (Daher erscheint in diesen Apps nach dem Rautenzeichen alles.) Wenn Sie jedoch etwas anderes ändern, muss die Seite neu geladen werden.

5

Ich gehe davon aus, dass Sie über die sichtbare URL in der URL-Leiste sprechen.

Die Antwort ist Nein, es ist eine große Sicherheitslücke, wenn eine Anwendung versucht, Benutzer zu glauben, dass an einer anderen Website sind.

-1

Nein, das ist nicht möglich. Und wann immer es möglich ist, ist das ein Browser-Bug (ich weiß über frühere Sicherheitsfehler im Zusammenhang mit diesem Verhalten, und sie wurden in der Vergangenheit behoben).

Eigentlich ... Sie können den letzten Teil der URL ändern, alles nach dem Zeichen. Aber der Hostname und der Pfad können nicht geändert werden, ohne die Seite zu verlassen.

Verwandte Themen