tus camisetas frikis en camisetafriki.com
Home > Programacion > Javascript, detectar la versión de Internet Explorer

Javascript, detectar la versión de Internet Explorer

Como hace mucho que no escribo, voy a hacerlo comentando algo que he necesitado hoy en el curro, que es identificar la versión de internet explorer para poder realizar una función u otra, que sabemos que no va a ser compatible en una versión y en otra si, vamos, lo típico.

Una manera es a partir de la versión de javascript, la cual no es muy fiable.

El código que nos sirve para almacenar la versión en una variable es el siguiente:

1
2
var ieVer=/*@cc_on function(){ switch(@_jscript_version){ case 1.0:return 1; case 3.0:return 3; case 5.0:return 5; case 5.1:return 5; case 5.5:return 5.5; case 5.6:return 6; case 5.7:return 7; case 5.8:return 5.8; }}()||@*/0;
if(/MSIE 6.0/i.test(navigator.userAgent)) {ieVer=6;}

Las instrucciones entre /*@cc_on y */ son comentarios condiciones (y que ni yo sabía que existía tal cosa) y por lo visto es tan poco estándar que sólo internet explorer lo lee, así que de entrada ignoramos que otros navegadores se metan por ahí y la lien. De este modo valdrá 0 para el resto de navegadores (y podemos entonces comparar la versión de éstos de otras maneras).

La parte dentro del comentario chungo este, asocia un valor a cada versión del IE, de este modo, la versión 1 devuelve 1, la versión 3 devuelve 3, etc…

Se comprueba hasta el 5.8, luego el 6 se comprueba fuera del comentario. La versión 7 y 8 del Internet Explorer devuelve 7 u 8 según proceda pese a no estar contenplado en el código (intuyo que va implícito en la versión de javascript que implementen).

Así, para comprobar si el navegador es inferior a una versión, solo hay que hacer:

1
if (ieVer<=6) {funcionEjecutada();}

Otro método más fiable es parsear con una expresión regular la versión del navegador. El código es el siguiente:

1
function vIE(){return (navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;}

Devuelve la versión de internet explorer devuelta por la variable UserAgent en caso de ser Internet Explorer o -1 para el resto de navegadores (curioso que el appName del firefox sea el difunto Netscape aunque luego en el userAgent se indique Firefox).

Fuente:outbook

Post relacionados

  • No hay post relacionados
Categories: Programacion Tags:
  1. No comments yet.
  1. No trackbacks yet.