2012-02-25 11 views
11

¿Hay alguna forma de comprobar si un navegador admite "API de historial de HTML5" mediante JavaScript?¿Comprobar la compatibilidad del navegador con el soporte de la API de historial de HTML5?

Tengo que verificar todos los navegadores y sus versiones con una larga lista de condiciones en la declaración if. O simplemente como la comprobación de cualquier objeto de la función utilizando sentencia 'if' es suficiente ??? ...

+0

Comprobar este post: http://stackoverflow.com/questions/4708358/detect-whether-html5-history-supported- or-not – mariogl

+0

[Modernizr] (http://modernizr.com) tiene una prueba de "historial". – Pointy

+0

Véase también [CanIUse] (http://caniuse.com) – Pointy

Respuesta

27

Verificar la existencia de un método pushState() en el objeto de historia global debería ser suficiente.

function supports_history_api() { 
    return !!(window.history && history.pushState); 
} 

Para la detección más general HTML 5 función miraría renovador

http://diveintohtml5.info/detect.html#modernizr

Esto aislar su código de los detalles sucios de cada prueba, por lo que el código sea más fácil de leer y menos errores propenso. Con el guión renovador de la página que acaba haría:

if (Modernizr.history) { 
    // history management works! 
} else { 
    // no history support :(
    // fall back to a scripted solution like History.js 
} 
+0

Thnx friend ... :) –

3

la comprobación de history.pushState y history.replaceState objetos existencia debe ser suficiente, ya que es generalmente suficiente con la detección de accidentes en general.

-1

Puede comprobar el tiempo o no se ha registrado una función:

if (typeof history.pushState != 'undefined') { 
    //Enabled 
} 

A continuación, basta con sustituir // Habilitado con lo que desea hacer si es compatible.

0

Puede utilizar canisuse.js script para detectar si su navegador es compatible con la historia o no

caniuse.history() 
Cuestiones relacionadas