Qualcuno sa di una libreria che determina se può essere utilizzato pushState?Può utilizzare pushState
stavo usando questo:
if(window.history.pushState){
window.history.pushState(null, document.title, path);
}else{
location.pathname = path;
}
Ma ho appena scoperto che c'è un bug in Safari 5.0.2, che fa sì che non funzionare, anche se la prova di cui sopra passa: http://support.github.com/discussions/site/2263-line-links-broken.
Sto pensando che ci potrebbero essere altri trucchi e qualcuno probabilmente li ha già trovati e impacchettati ma non ho ancora trovato nulla.
Edit: @Crescent Fresh
Da quello che ho visto sembra pushState spinge nello stack storia e cambia l'url, ma non aggiorna location.pathname. Nel mio codice sto usando setInterval per verificare se il percorso è stato aggiornato.
var cachedPathname = location.pathname;
if(window.history.pushState){
cachedPathname = location.pathname;
setInterval(function(){
if(cachedPathname !== location.pathname){
cachedPathname = location.pathname;
//do stuff
}
}, 100);
}
In Safari 5.0.2 il percorso percorso non cambia quando pushState cambia l'URL. Funziona con altri browser e versioni di Safari.
Quale parte di quella pagina collegata dice che il test per 'window.history.pushState' non è valido? Sembra che il bug sia collegato a qualcosa che sta facendo github specifico ('pushState' in congiunzione con l'impostazione' location.hash', da ciò che posso raccogliere). –