javascript判定不同瀏覽器

來源:互聯網
上載者:User

除了另無它法,肯定不使用navigator.userAgent來判定瀏覽器。因為在第一次瀏覽器大戰初期,Netscape占絕對統計地位,大 部分人們不願意相容其他瀏覽器,並通過檢測其UA讓他們的網站只允許Netscape訪問,這就逼使其他瀏覽器(包括IE)修改自己的UA偽裝成 Netscape來通過那些自以為是的指令碼,於是出現每個人都聲稱自己是別人的局面,即使最新的IE9的UA也是:

 

 //Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)

// 2010 4 16 日更新          ie = !+ "\v1" ;          ie = !-[ 1 ,];//IE 9 預覽版中失效          ie = '\v' == 'v' ;          ie = !!document.recalc          ie = !!window.VBArray          ie = !!window.ActiveXObject          ie = 0 //@cc_on+ 1 ;          ie = !!window.createPopup;          ie = /*@cc_on!@*/ ! 1 ;          ie = document.expando;//document. all 在opera firefox的古老版本也存在          ie = /\w/.test( '\u0130' ) //由群裡的abcd友情提供                   ie 6 = ! "1" [ 0 ] //利用IE 6 或IE 5 的字串不能使用數組下標的特徵          ie 8 = !!window.XDomainRequest;          ie 9 =  document.documentMode && document.documentMode === 9 ;          //自創,基於條件編譯的嗅探指令碼,IE會返回其JS引擎的版本號碼,非IE返回 0          var ieVersion = eval( "''+/*@cc_on" + " @_jscript_version@*/-0" )* 1          ie 9 = ieVersion === 5.9          ie 8 = ieVersion === 5.8          ie 7 = ieVersion === 5.7          ie 6 = ieVersion === 5.6          ie 5 = ieVersion === 5.5          //https://developer.mozilla.org/En/Windows_Media_in_Netscape          netscape = !!window.GeckoActiveXObject          gecko  = !!window.netscape //包括firefox          firefox = !!window.Components          firefox = !!window.updateCommands          safari = !!(navigator.vendor && navigator.vendor.match(/Apple/))          safari = window.openDatabase && !window.chrome;          chrome= !!(window.chrome && window.google)          opera=!!window.opera ;          //傲遊 2 3          maxthon = /maxthon/i.test(navigator.userAgent)          // 360 安全瀏覽器          is 360 se = / 360 se/i.test(navigator.userAgent) // 2010.6 . 4         setTimeout(function(){//FF的setTimeout總是有一個額餘的參數 0            var isFF = !!arguments.length;            alert(isFF)          }, 0 );  //判定IE版本 2010.10 . 1        ie = (function(undefined){          var v = 3 , div = document.createElement( 'div' );          while (          div.innerHTML = '<!--[if gt IE ' +(++v)+ ']><i></i><![endif]-->' ,          div.getElementsByTagName( 'i' )[ 0 ]);          return v> 4 ? v : undefined;        }());  //判定IE版本 2011.2 . 24         ie = (function() {            var v = 3 , div = document.createElement( 'div' ), a = div. all || [];            while (div.innerHTML = '<!--[if gt IE ' +(++v)+ ']><br><![endif]-->' , a[ 0 ]);            return v > 4 ? v : !v;          }());     //手機的相關判定 2011.9 . 21   isIPhone = /iPhone/i.test(navigator.userAgent);   isIPhone 4 = window.devicePixelRatio >= 2 //在網頁中,pixel與point比值稱為device-pixel-ratio,普通裝置都是 1 ,iPhone 4 2 ,有些Android機型是 1.5 //http://blog.webcreativepark.net/ 2011 / 01 / 25 -173502 .html   isIPad = /iPad/i.test(navigator.userAgent);   isAndroid = /android/i.test(navigator.userAgent);   isIOS = isIPhone  || isIPad ;     

isMobile = isIOS || isAndroid ;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.