Detectar la versión de Internet Explorer en Javascript

Actualizado 2008-08-28: Actualizado para Internet Explorer 8 (funciona en la beta 2).

Actualizado 2009-03-03: Incompatibilidad con IE6 XP SP3.

Supersencillo:

var ieVer=/*@cc_on function(){ switch(@_jscript_version){ case 1.0:return 3; case 3.0:return 4; 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 8; }}()||@*/0;
if(/MSIE 6.0/i.test(navigator.userAgent)) {ieVer=6;}

/*@cc_on abre el comentario condicional, y @*/ lo cierra. Lo que hay ahí dentro solo lo lee Internet Explorer.

Dentro de la zona de comentario condicional se establece que cada versión de Internet Explorer retorne un número. El 0, que queda fuera del comentario condicional, sirve para el resto de navegadores.

Si por ejemplo queremos que una determinada función funcione solo para Internet Explorer 6 y anteriores se le da una condición de que la ejecute solo para el valor de variable ieVer igual o menor que 6:

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

Internet Explorer 6 en XP SP3

En esta configuración Internet Explorer 6 devuelve los mismos valores que Internet Explorer 7, por lo que este script pierde en gran medida su sentido.

De todas formas se puede solventar añadiendo la siguiente línea:

if(/MSIE 6.0/i.test(navigator.userAgent)) {ieVer=6;}

Saber más

4 respuestas a «Detectar la versión de Internet Explorer en Javascript»

  1. Perfecto, pero cómo detecto IE8? Qué versión de javascript le corresponde?

    Saludos.

Los comentarios están cerrados.