[jQuery]判斷瀏覽器類型和版本

來源:互聯網
上載者:User

[jQuery]判斷瀏覽器類型和版本

這與《【HTML】根據不同的瀏覽器類型寫不同的HTML代碼》(點擊開啟連結)一文是姊妹篇,IE注釋能夠幫你在網頁的HTML根據不同的版本,渲染不同的代碼。

此文是在指令碼部分利用jQuery判斷瀏覽器類型和版本而執行不同的Javascript指令碼。

由於直接利用Javascript實現判斷瀏覽器的版本的代碼比較複雜,Javascript沒有封裝介面,Jquery有封裝介面,不用寫這麼多代碼,所以直接用Jquery來實現。

不過值得注意的是,jQuery從1.9版開始,移除了$.browser和$.browser.version, 取而代之的是$.support。在更新的 2.0 版本中,將不再支援IE 6/7/8。 以後,如果使用者需要支援IE 6/7/8,只能使用 jQuery 1.9。 也就是說,以下的判斷僅適用於jQuery 1.9的版本,連jQuery 1.10都不行,親測。

具體代碼如下:

 

<script type=text/javascript>if($.browser.msie){ alert(IE瀏覽器); if($.browser.version<8){alert(IE7及其以下);}else{alert(IE8及其以上);}}else if($.browser.webkit){alert(蘋果的Safari、Google的Chrome瀏覽器); }else if($.browser.mozilla){alert(野狐禪FireFox瀏覽器); }else if($.browser .opera){ alert(Opera瀏覽器); }</script>

由於就幾個彈框就不展示了。

 

這裡就是利用到$.browser.version。也是主要判斷IE7與非IE7足矣,因為部分代碼在IE7以上與以下的實現實在是不同……

對於jQuery 1.9以上的版本,由於移除了$.browser,一般自己利用Regex定義$.browser.version幾個來判斷:

 

$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());$.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase());$.browser.opera = /opera/.test(navigator.userAgent.toLowerCase());$.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());

然後利用IE6沒有的的屬性來判斷IE6:

 

 

('undefined' == typeof(document.body.style.maxHeight)) {}

如果判斷IE8則利用leadingWhitespace。leadingWhitespace:如果在使用innerHTML的時候瀏覽器會保持前置空白字元,則返回true,目前在IE 6-8中返回false。

 

 

if (!$.support.leadingWhitespace) {}

不使用Jquery直接利用Javascript則更為複雜,主要是對navigator.appName,navigator.appVersion兩個瀏覽器標示屬性進行字串方法切割,再來判斷。這裡就不貼代碼了。有興趣看看不同的瀏覽器,alert(navigator.appName+,+navigator.appVersion);是什麼鬼。比如IE8就是:

 

之後你就對這些字串慢慢用字串方法切割。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.