2009-12-18 27 views
5

Estoy usando el siguiente código para obtener la versión de IE en un sistema.Obtener la versión del navegador de IE usando Javascript

var browser = navigator.appName; 
    var b_version = navigator.appVersion; 
    var version = parseFloat(b_version); 
    alert(version); 

Pero la versión siempre es 4 en IE^e IE7. ¿Cómo puedo obtener la versión exacta?

Respuesta

4

Por lo general no es una buena idea utilizar la detección de versiones - de hecho, no se recomienda incluso la detección del navegador! En cambio, intente object detection.

+0

Es realmente una buena técnica. ¿Pero hay problemas de rendimiento? – Sauron

+0

Estoy bastante seguro de que no hay. Esto es, como yo lo entiendo, una "mejor práctica". –

+0

Y ciertamente es más rápido que cualquier cosa que involucre expresiones regulares, y probablemente también un corte de cuerdas. –

-2

intentar algo como esto:

<script language="javascript"> 
     Event.observe(window, 'load', function() { 
      var el = $("browserName"); 
      var BO = detectBrowser(); 
      if(BO.ie6){ 
       el.innerHTML = "<b>We do not support IE6. Please click <a href=\"http://www.microsoft.com/windows/downloads/ie/getitnow.mspx\">here</a> to upgrade.</b>"; 
      }else{ 
       el.innerHTML = "<b>Thank You for not running IE6.</b>"; 
      } 
     }); 
</script> 
+0

¿Dónde desde 'Event.observe'? – Sauron

7

Tienes 4 debido a las cadenas de navegación.AppVersion comienza con 4.0 como este.

4.0 (compatible; MSIE 6.0; Windows NT 5.0; ...) 

Si lo hace así, obtendrá MSIE 6.0 para el caso

alert(navigator.appVersion.match(/MSIE [\d.]+/)) 

anterior Si sólo desea 6.0 que podría hacer como

alert(navigator.appVersion.match(/MSIE ([\d.]+)/)[1]) 
2

Ésta función Isie retornos Versión IE si se detecta IE else devuelve FALSE

function isIE() { 
    var myNav = navigator.userAgent.toLowerCase(); 
    return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false; 
} 

Esto se basa en the answer here por weroro.

Cuestiones relacionadas