Rewrite document.location ohne Belastung
-
05-10-2019 - |
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?
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