javascript 检测浏览器类型、操作系统平台的代码

 
  1. var sUserAgent = navigator.userAgent;
  2. var fAppVersion = parseFloat(navigator.appVersion);
  3. function compareVersions(sVersion1, sVersion2) {
  4.     var aVersion1 = sVersion1.split(".");
  5.     var aVersion2 = sVersion2.split(".");
  6.     
  7.     if (aVersion1.length > aVersion2.length) {
  8.         for (var i=0; i < aVersion1.length - aVersion2.length; i++) {
  9.             aVersion2.push("0");
  10.         }
  11.     } else if (aVersion1.length < aVersion2.length) {
  12.         for (var i=0; i < aVersion2.length - aVersion1.length; i++) {
  13.             aVersion1.push("0");
  14.         }    
  15.     }
  16.     
  17.     for (var i=0; i < aVersion1.length; i++) {
  18.  
  19.         if (aVersion1[i] < aVersion2[i]) {
  20.             return -1;
  21.         } else if (aVersion1[i] > aVersion2[i]) {
  22.             return 1;
  23.         }    
  24.     }
  25.     
  26.     return 0;
  27. }
  28. var isOpera = sUserAgent.indexOf("Opera") > -1;
  29. var isMinOpera4 = isMinOpera5 = isMinOpera6 = isMinOpera7 = isMinOpera7_5 = false;
  30. if (isOpera) {
  31.     var fOperaVersion;
  32.     if(navigator.appName == "Opera") {
  33.         fOperaVersion = fAppVersion;
  34.     } else {
  35.         var reOperaVersion = new RegExp("Opera (//d+//.//d+)");
  36.         reOperaVersion.test(sUserAgent);
  37.         fOperaVersion = parseFloat(RegExp["$1"]);
  38.     }
  39.     isMinOpera4 = fOperaVersion >= 4;
  40.     isMinOpera5 = fOperaVersion >= 5;
  41.     isMinOpera6 = fOperaVersion >= 6;
  42.     isMinOpera7 = fOperaVersion >= 7;
  43.     isMinOpera7_5 = fOperaVersion >= 7.5;
  44. }
  45. var isKHTML = sUserAgent.indexOf("KHTML") > -1 
  46.               || sUserAgent.indexOf("Konqueror") > -1 
  47.               || sUserAgent.indexOf("AppleWebKit") > -1; 
  48.               
  49. var isMinSafari1 = isMinSafari1_2 = false;
  50. var isMinKonq2_2 = isMinKonq3 = isMinKonq3_1 = isMinKonq3_2 = false;
  51. if (isKHTML) {
  52.     isSafari = sUserAgent.indexOf("AppleWebKit") > -1;
  53.     isKonq = sUserAgent.indexOf("Konqueror") > -1;
  54.     if (isSafari) {
  55.         var reAppleWebKit = new RegExp("AppleWebKit///(//d+(?://.//d*)?)");
  56.         reAppleWebKit.test(sUserAgent);
  57.         var fAppleWebKitVersion = parseFloat(RegExp["$1"]);
  58.         isMinSafari1 = fAppleWebKitVersion >= 85;
  59.         isMinSafari1_2 = fAppleWebKitVersion >= 124;
  60.     } else if (isKonq) {
  61.         var reKonq = new RegExp("Konqueror///(//d+(?://.//d+(?://.//d)?)?)");
  62.         reKonq.test(sUserAgent);
  63.         isMinKonq2_2 = compareVersions(RegExp["$1"], "2.2") >= 0;
  64.         isMinKonq3 = compareVersions(RegExp["$1"], "3.0") >= 0;
  65.         isMinKonq3_1 = compareVersions(RegExp["$1"], "3.1") >= 0;
  66.         isMinKonq3_2 = compareVersions(RegExp["$1"], "3.2") >= 0;
  67.     } 
  68.     
  69. }
  70. var isIE = sUserAgent.indexOf("compatible") > -1 
  71.            && sUserAgent.indexOf("MSIE") > -1
  72.            && !isOpera;
  73.            
  74. var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIE6 = false;
  75. if (isIE) {
  76.     var reIE = new RegExp("MSIE (//d+//.//d+);");
  77.     reIE.test(sUserAgent);
  78.     var fIEVersion = parseFloat(RegExp["$1"]);
  79.     isMinIE4 = fIEVersion >= 4;
  80.     isMinIE5 = fIEVersion >= 5;
  81.     isMinIE5_5 = fIEVersion >= 5.5;
  82.     isMinIE6 = fIEVersion >= 6.0;
  83. }
  84. var isMoz = sUserAgent.indexOf("Gecko") > -1
  85.             && !isKHTML;
  86. var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false;
  87. if (isMoz) {
  88.     var reMoz = new RegExp("rv:(//d+//.//d+(?://.//d+)?)");
  89.     reMoz.test(sUserAgent);
  90.     isMinMoz1 = compareVersions(RegExp["$1"], "1.0") >= 0;
  91.     isMinMoz1_4 = compareVersions(RegExp["$1"], "1.4") >= 0;
  92.     isMinMoz1_5 = compareVersions(RegExp["$1"], "1.5") >= 0;
  93. }
  94. var isNS4 = !isIE && !isOpera && !isMoz && !isKHTML 
  95.             && (sUserAgent.indexOf("Mozilla") == 0) 
  96.             && (navigator.appName == "Netscape"
  97.             && (fAppVersion >= 4.0 && fAppVersion < 5.0);
  98. var isMinNS4 = isMinNS4_5 = isMinNS4_7 = isMinNS4_8 = false;
  99. if (isNS4) {
  100.     isMinNS4 = true;
  101.     isMinNS4_5 = fAppVersion >= 4.5;
  102.     isMinNS4_7 = fAppVersion >= 4.7;
  103.     isMinNS4_8 = fAppVersion >= 4.8;
  104. }
  105. var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
  106. var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC"
  107.             || (navigator.platform == "Macintosh");
  108. var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
  109. var isWin95 = isWin98 = isWinNT4 = isWin2K = isWinME = isWinXP = false;
  110. var isMac68K = isMacPPC = false;
  111. var isSunOS = isMinSunOS4 = isMinSunOS5 = isMinSunOS5_5 = false;
  112. if (isWin) {
  113.     isWin95 = sUserAgent.indexOf("Win95") > -1 
  114.               || sUserAgent.indexOf("Windows 95") > -1;
  115.     isWin98 = sUserAgent.indexOf("Win98") > -1 
  116.               || sUserAgent.indexOf("Windows 98") > -1;
  117.     isWinME = sUserAgent.indexOf("Win 9x 4.90") > -1 
  118.               || sUserAgent.indexOf("Windows ME") > -1;
  119.     isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 
  120.               || sUserAgent.indexOf("Windows 2000") > -1;
  121.     isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 
  122.               || sUserAgent.indexOf("Windows XP") > -1;
  123.     isWinNT4 = sUserAgent.indexOf("WinNT") > -1 
  124.               || sUserAgent.indexOf("Windows NT") > -1 
  125.               || sUserAgent.indexOf("WinNT4.0") > -1 
  126.               || sUserAgent.indexOf("Windows NT 4.0") > -1 
  127.               && (!isWinME && !isWin2K && !isWinXP);
  128. if (isMac) {
  129.     isMac68K = sUserAgent.indexOf("Mac_68000") > -1 
  130.                || sUserAgent.indexOf("68K") > -1;
  131.     isMacPPC = sUserAgent.indexOf("Mac_PowerPC") > -1 
  132.                || sUserAgent.indexOf("PPC") > -1;  
  133. }
  134. if (isUnix) {
  135.     isSunOS = sUserAgent.indexOf("SunOS") > -1;
  136.     if (isSunOS) {
  137.         var reSunOS = new RegExp("SunOS (//d+//.//d+(?://.//d+)?)");
  138.         reSunOS.test(sUserAgent);
  139.         isMinSunOS4 = compareVersions(RegExp["$1"], "4.0") >= 0;
  140.         isMinSunOS5 = compareVersions(RegExp["$1"], "5.0") >= 0;
  141.         isMinSunOS5_5 = compareVersions(RegExp["$1"], "5.5") >= 0;
  142.     }
  143. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值