2009-12-18 12 views
5

Sto usando il seguente codice per ottenere la versione di IE in un sistema.Scarica la versione del browser di IE utilizzando Javascript

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

Ma la versione ottiene sempre è 4 in IE^e IE7. Come posso ottenere la versione esatta?

risposta

4

Non è generalmente una buona idea quella di utilizzare il rilevamento versione - infatti, anche il browser di rilevamento non è raccomandato! Invece, prova object detection.

+0

È davvero una buona tecnica. Ma ci sono problemi di prestazioni ?? – Sauron

+0

Sono abbastanza sicuro che non ci siano. Questa è, a quanto ho capito, una "migliore pratica". –

+0

Ed è sicuramente più veloce di qualsiasi cosa che coinvolga espressioni regolari, e probabilmente anche di affettare le stringhe. –

-2

provare qualcosa di simile:

<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

Da dove proviene "Event.observe"? – Sauron

7

Hai ottenuto 4 perché le stringhe di navigator.appVersion iniziano con 4.0 come questo.

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

Se lo fai in questo modo, si otterrà MSIE 6.0 per caso

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

sopra Se desideri solo 6.0 si potrebbe fare come

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

La funzione qui sotto ISIE rendimenti Versione IE se viene rilevato IE, altrimenti restituisce FALSE

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

Questo è basato su weroro the answer here.