2011-01-19 23 views
2

我正在使用jQuery來檢測用戶瀏覽器代理,並將瀏覽器名稱添加爲正文的css類。這對於webkit和mozilla來說就像魔術一樣......但是msie卻失敗了 - 但不知道爲什麼。對於msie,我不僅要添加「msie」,還要添加一個使用msie的版本號的類(如「msie7」或「msie8」)。jQuery將瀏覽器名稱添加到css-class

一切正常,只有msie部分沒有!

我(全)jQuery的代碼:

<script type="text/javascript"> 
<!-- 
(function($){ 
    $(function(){ 

     var $copy = $('div.SPA_printcontact').clone(); 
     var $body = $('body'); 

     $copy.insertAfter('#printdate'); 

     if($.browser.msie) { 
      $body.addClass('msie') 
      var userAgent = userAgent.substring(0,userAgent.indexOf('.')); 
      var version = userAgent; 
      $body.addClass('msie' + version) 
     } 
     if($.browser.webkit) { 
      $body.addClass('webkit') 
     } 
     if($.browser.mozilla) { 
      $body.addClass('mozilla') 
     } 

    }); 
}(jQuery)); 
--> 
</script> 
+0

我知道,這不是你問什麼,但我覺得有義務指出的是,你的方法(可能?)應用不同不同瀏覽器的樣式有一些問題。這是寫在這個主題上的許多文章之一:http://css-tricks.com/browser-detection-is-bad/ – polarblau 2011-01-19 09:47:19

+0

我假裝你沒有聽說過`$ .browser.version`。我可能是錯的。 :)什麼是'一切正常,只有msie部分不會!`?你能給我們提示一下IE中發生的事情嗎? – Reigel 2011-01-19 09:49:36

+1

你的腳本會因爲你錯過的任何瀏覽器或任何新版本的IE設計而失敗。 – 2011-01-19 09:54:32

回答

4

http://api.jquery.com/jQuery.browser/

嘗試使用$ .browser.version拿到版本號,而不是

編輯提示:此已經在jQuery v1.9及更高版本中被棄用了。請參閱下面的Tom的回答。

-1

請嘗試使用$( '身體')addClass(),如果還是不行,請嘗試$( '主體')ATTR(」。類」,MSIE +版本)。

2

沒有全局對象userAgent。它的navigator一員,所以使用navigator.userAgent代替或版本的jQuery提供像由Mohib謝斯

相關問題