Frage

Ich entwickle ein System, das 100% Ajax ist, außer natürlich, die erste Anfrage.

Ich bin bei der Änderung der Adresse in document.location interessiert, mit Hilfe von JavaScript. Aber ich will nicht der Browser die Seite auf diesem „neuen“ Standort laden.

Wer weiß, wie kann ich dies tun?

War es hilfreich?

Lösung

Um die gesamte Lage neu zu schreiben und nicht nur der „hash“ Teil, Browser-History-API verwendet werden kann, obwohl derzeit nur es scheint zu sein, unterstützt in Gecko 1.9.3 / Firefox 4 .

history.replaceState({}, document.title, url)

Andere Tipps

Ändern der gesamte URL ohne Navigation nicht möglich ist, stellen Sie sich vor der Sicherheitsfragen , dass es erzeugen könnte.

Sie können nur die location.hash ändern, was der Teil der URL ist, die das # Symbol folgt:

location.hash = "foo";

wird Ihre URL ändern http://someurl.com/#foo

Sie können die gleiche Methode verwenden, dass Google Mail verwendet. Anfügen ein Anker zum Ende der URL, sollte der Browser die Seite neu zu laden, aber Sie können die Informationen in document.location.href lesen und handeln danach. Dies wird auch die Funktionalität der Zurück-Taste intakt halten (Ihr Javascript unterstützt die Bereitstellung es)

zum Beispiel

erste Seite ist http://www.mypage.com/index.php Sie auf die nächste „Seite“ klicken <a href="#page2">link</a> mit und es ändert sich zu http://www.mypage.com/index.php#page2

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top