In modernen Browsern und HTML5 gibt es eine Methode, die pushState
im Fenster aufgerufen wird history
. Dadurch wird die URL geändert und in den Verlauf verschoben, ohne dass die Seite geladen werden muss.
Sie können es so verwenden, es werden 3 Parameter benötigt, 1) Statusobjekt 2) Titel und eine URL):
window.history.pushState({page: "another"}, "another page", "example.html");
Dadurch wird die URL geändert, die Seite jedoch nicht neu geladen. Außerdem wird nicht überprüft, ob die Seite vorhanden ist. Wenn Sie also JavaScript-Code verwenden, der auf die URL reagiert, können Sie wie folgt damit arbeiten.
Es gibt history.replaceState()
auch solche, die genau das Gleiche tun, außer dass der aktuelle Verlauf geändert wird, anstatt einen neuen zu erstellen!
Sie können auch eine Funktion erstellen, um zu überprüfen, ob sie history.pushState
vorhanden ist, und den Rest wie folgt fortsetzen:
function goTo(page, title, url) {
if ("undefined" !== typeof history.pushState) {
history.pushState({page: page}, title, url);
} else {
window.location.assign(url);
}
}
goTo("another page", "example", 'example.html');
Sie können auch das #
für ändern <HTML5 browsers
, wodurch die Seite nicht neu geladen wird. So verwendet Angular SPA gemäß Hashtag ...
Das Ändern #
ist ganz einfach und funktioniert wie folgt:
window.location.hash = "example";
Und Sie können es so erkennen:
window.onhashchange = function () {
console.log("#changed", window.location.hash);
}