2011-07-26 13 views
40

Quiero cambiar la URL sin tener que volver a cargar la página. La posible solución que encontré es¿Cómo puedo saber si un navegador es compatible con History.Pushstate o no?

window.history.pushState ('page2', 'Title', '/page2.php');

pero algunos navegador como Firefox 3.5, Internet Explorer 6 + no es compatible con esto, así que para ellos es la solución

var uri = window.location.href;

pero el problema es ¿cómo descubrir si un navegador es compatible con history.pushstate o no?

Es TRY CATCH es la solución posible o cualquier otra cosa.

Respuesta

78
if (history.pushState) { 
    // supported. 
} 

prueba más rápida es ejecutar esto en la consola del navegador para ver si está soportada:

if (history.pushState) { alert('supported'); } 

Observe también que en FF typeof(history.pushState) devuelve "función", mientras que en IE devuelve "indefinido"

+2

Con Firefox, cuando en realidad no hay historial en la pila de inserción (cuando usted es la raíz del dominio), history.pushState devuelve realmente "indefinido". No sé si esto es un error, pero es realmente molesto. –

Cuestiones relacionadas