Ich arbeite an etwas JavaScript-Code und window.History.pushState
verwenden, um neue HTML
Seiten zu laden, anstatt href
Tags zu verwenden. Mein Code (funktioniert gut) sieht so aus.window.history.pushState Aktualisierung des Browsers
window.History.pushState({urlPath:'/page1'},"",'/page1')
seltsam, diese ausfällt, dh neu lädt der Browser
window.History.pushState({urlPath:'/page2.php'},"",'/page2.php')
Aber diese arbeitet, Inhalt aktualisiert wird, Browser nicht aktualisiert! (Beachten Sie die URL absolut und nicht relativ)
window.History.pushState({urlPath:'www.domain.com/page2.php'},"",'www.domain.com/page2.php')
Die documentation für window.History.pushState
sagt, dass der dritte Parameter URL entweder absolut oder relativ sein kann -
URL - Die neue URL Geschichte Eintrag ist gegeben durch dieser Parameter. Hinweis , dass der Browser nicht versuchen wird, diese URL nach einem Aufruf pushstate() zu laden, aber es könnte versuchen, die URL später zu laden, zum Beispiel , nachdem der Benutzer des Browser neu gestartet. Die neue URL muss nicht absolut sein; Wenn es relativ ist, wird es relativ zur aktuellen URL aufgelöst. Die neue URL muss denselben Ursprung haben wie die aktuelle URL. Andernfalls wird pushState() eine Ausnahme auslösen. Dieser Parameter ist optional; Wenn es nicht angegeben ist, wird es auf die aktuelle URL des Dokuments festgelegt.
Absolute URLs scheinen zu arbeiten, aber relativ scheinen nicht zu sein. Warum passiert dies?
Ist dies für Sie in allen Browsern möglich? Ich verwende relative Pfade mit 'history.pushState' (zukünftige Leser, beachte das Kleinbuchstabe' h' in 'history') ziemlich regelmäßig (und probier es einfach in Firebug), ohne jemals ein Nachladen zu verursachen. Welchen anderen Code benutzen Sie (da history.pushState nichts lädt, aktualisiert lediglich den Verlauf und die Adressleiste)? – Maverick
Dies geschieht in Chrome und Firefox. Ich habe das in der Konsole für Chrome getestet, es gibt also keinen anderen Code, der Probleme verursachen könnte. Dieses Problem ist nur mit einigen URLs sichtbar. Könnte das etwas mit Umleitungsregeln zu tun haben (obwohl die Dokumentation besagt, dass relative Pfade in absolute Pfade aufgelöst werden, sollte es also sowohl absolute als auch relative URLs gleichermaßen beeinflussen, was nicht der Fall ist)? –
Bitte legen Sie Ihren Code irgendwo auf, damit wir ihn ansehen können. Wie @ MrN00b vorgeschlagen hat, ist der Kleinbuchstabe "h" für "Geschichte" wichtig. Das Folgende funktioniert bei mir ohne Seitenaktualisierung: '$ ('# buttonID'). On ('click', function() {window.history.pushState ({urlPath: '/ page1'}, "", '/ page1')}); ' – SimpleAnecdote