2012-12-20 48 views
1

我在頁面中添加了以下javascript,因爲當文本太長時,某些dropdownlist不會在IE中顯示整個內容。如何從測試中排除Ie9或更高版本?

$(".dropdown").mousedown(function() { 
    if ($.browser.msie) { 
     //Do something 
    } 
}); 

現在,我已經修復了問題,我只知道,IE9不存在這樣的問題。那麼,如何從上述測試中排除IE9或更高版本呢?

感謝您的幫助

+2

根本不應該進行瀏覽器測試。使用*功能檢測*代替。 – jAndy

+0

在條件註釋中加載您的腳本文件。 – Smamatti

回答

2

也許你可以做到這一點在你的頁面的HEAD:

<!--[if gt IE 8]> 
<script src="myscript.js"></script> 
<![endif]--> 
5
if ($.browser.msie && parseInt($.browser.version, 10) < 9) { 
    // your code here for IE < 9 
} 

UPDATE

$.browser已被棄用。

確保您的代碼只在IE < 9上運行的一種方法是使用條件語句。

<!--[if lt IE 9]> 
    <script src="path-to-js.js" type="text/javascript"></script> 
<![endif]--> 
+0

$ .browser被刪除。 –

+0

@JayBlanchard:哇,永遠不會意識到這一點。謝謝,更新了答案。 –

2

$.browser有另一個屬性命名的版本,用它來檢測正在使用哪個版本。

console.log($.browser.version) 

你真的不應該使用$.browser可言,雖然,它消失了jQuery中(1.9和2.0)的下一個版本。

0

使用jQuery:

if ($.browser.msie && parseInt($.browser.version, 10) > 9) { 
    //exclude 
} 

這裏是純JavaScript同樣的方法:

<script> 

    function getIEVersion() { 
     var rv = -1; // Return value assumes failure. 
     if (navigator.appName == 'Microsoft Internet Explorer') { 
      var ua = navigator.userAgent; 
      var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
      if (re.test(ua) != null) 
       rv = parseFloat(RegExp.$1); 
     } 
     return rv; 
    } 


    function checkVersion() { 
     var ver = getIEVersion(); 

     if (ver != -1) { 
      if (ver > 9.0) { 
       // do something 
      } 
     } 
    } 

    checkVersion(); 

</script> 

但是,最好的辦法是不使用UA嗅探,而是使用特徵檢測像Modernizr

相關問題