¿Alguien sabe de una biblioteca que determina si se puede usar pushState?Puede usar pushState
que estaba usando esto:
if(window.history.pushState){
window.history.pushState(null, document.title, path);
}else{
location.pathname = path;
}
Pero me acabo de enterar que hay un error en Safari 5.0.2 que hace que no trabajar a pesar de que la prueba anterior pasa: http://support.github.com/discussions/site/2263-line-links-broken.
Estoy pensando que podría haber otros problemas y alguien probablemente ya los ha encontrado y los ha empaquetado pero aún no he encontrado nada.
Editar: @Crescent fresco
Por lo que he visto parece que empuja pushState en la pila historia y cambia la url, pero no actualiza location.pathname. En mi código estoy usando setInterval para verificar si la ruta se ha actualizado.
var cachedPathname = location.pathname;
if(window.history.pushState){
cachedPathname = location.pathname;
setInterval(function(){
if(cachedPathname !== location.pathname){
cachedPathname = location.pathname;
//do stuff
}
}, 100);
}
En Safari 5.0.2 la ubicación.nombre de la ruta no cambia cuando pushState cambia la url. Esto funciona en otros navegadores y versiones de Safari.
¿Qué parte de esa página vinculada dice que las pruebas para 'window.history.pushState' no son válidas? Parece que el error está relacionado con algo específico que está haciendo github ('pushState' junto con la configuración' location.hash', de lo que puedo deducir). –