Sto lavorando su qualche codice javascript e utilizzo di window.History.pushState
per caricare nuove pagine HTML
, anziché utilizzare i tag href
. Il mio codice (che è funzionante bene) si presenta così.window.history.pushState aggiornamento del browser
window.History.pushState({urlPath:'/page1'},"",'/page1')
stranamente, questo fallisce, cioè ricarica la navigatore
window.History.pushState({urlPath:'/page2.php'},"",'/page2.php')
Ma questo funziona, il contenuto viene aggiornato, il browser non viene aggiornata! (Si noti l'URL è assoluta e non relativa)
window.History.pushState({urlPath:'www.domain.com/page2.php'},"",'www.domain.com/page2.php')
Il documentation per window.History.pushState
dice che il terzo parametro URL può essere assoluto o relativo -
URL - URL del nuovo entry storia è data da questo parametro. Nota: che il browser non tenterà di caricare questo URL dopo una chiamata a pushState(), ma potrebbe tentare di caricare l'URL in un secondo momento, ad esempio dopo che l'utente riavvia il browser. Il nuovo URL non deve essere assoluto; se è relativo, è risolto relativamente all'URL corrente. Il nuovo URL deve essere della stessa origine dell'URL corrente; altrimenti, pushState() genererà un'eccezione. Questo parametro è facoltativo; se non è specificato, è impostato sull'URL corrente del documento.
Gli URL assoluti sembrano funzionare ma i parenti sembrano non esserlo. Perché sta succedendo?
Questo succede per te in tutti i browser? Io uso i percorsi relativi con 'history.pushState' (i futuri lettori, si noti la' h' in 'minuscola in 'history') abbastanza regolarmente (e appena provato in Firebug) senza mai causare una ricarica. Quale altro codice stai usando (come history.pushState non carica nulla, semplicemente aggiorna la cronologia e la barra degli indirizzi)? – Maverick
Questo sta accadendo in chrome e firefox. Ho provato questo nel pannello della console per Chrome, quindi non c'è altro codice che potrebbe causare problemi. Questo problema è visibile solo con alcuni URL. Questo potrebbe avere qualcosa a che fare con le regole di reindirizzamento (sebbene la documentazione indichi che i percorsi relativi sono risolti in percorsi assoluti, quindi dovrebbe influenzare ugualmente sia gli URL assoluti che quelli relativi, che non è il caso)? –
Si prega di inserire il codice da qualche parte in modo da poter dare un'occhiata a questo. Come suggerito da MrN00b, la "h" minuscola per "history" è importante. Il seguente funziona per me senza un aggiornamento della pagina: '$ ('# buttonID'). On ('click', function() {window.history.pushState ({urlPath: '/ page1'}, "", '/ page1')}); ' – SimpleAnecdote