使用JS 获取当前用户使用的浏览器信息以及操作系统版本信息

说明:

   浏览器更新快,有些代码可能会失效,需要你再次测试验证。

    以下代码是我参照网友的代码进行改良整合而成。(由于项目时间急,没有记录所抄写代码的原作者,请原谅。。。) 

    系统版本 只测试了 Windows系统  ,IE浏览器 只测试了 IE9-IE最新版。Safari(苹果)浏览器仅测试了win版。

    可以获取 用户当前浏览器的名称、(基于)内核版本号、(自身浏览器厂商的)内核版本号以及浏览器所处的操作系统版本信息。

获取浏览器 (基于)内核版本号

(function($){
             var BrowserMatch = {  
                  init: function() {  
                      this.browser = this.getBrowser().browser || "未知浏览器";  //获取浏览器名
                      this.version = this.getBrowser().version || "未知浏览器版本号";  //获取浏览器版本
                      this.OS = this.getOS()+" "+this.getDigits() || "未知操作系统"; //系统版本号 
                  },  
                  getOS: function() {  //判断所处操作系统
                         var sUserAgent = navigator.userAgent.toLowerCase();   
                        
                        var isWin = (navigator.platform == "Win32") || (navigator.platform == "Win64")|| (navigator.platform == "wow64");   
                        
                        var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");   
                        if (isMac) return "Mac";   
                        var isUnix = (navigator.platform == "X11") && !isWin && !isMac;   
                        if (isUnix) return "Unix";   
                        var isLinux = (String(navigator.platform).indexOf("Linux") > -1);   
                        var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";  
                        if (isLinux) {  
                        if(bIsAndroid) return "Android";  
                        else return "Linux";   
                        }  
                        if (isWin) {   
                        
                            var isWin2K = sUserAgent.indexOf("Windows nt 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;   
                            if (isWin2K) return "Win2000";   
                            var isWinXP = sUserAgent.indexOf("Windows nt 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1  
                            sUserAgent.indexOf("Windows XP") > -1;   
                            if (isWinXP) return "WinXP";   
                            var isWin2003 = sUserAgent.indexOf("Windows nt 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;   
                            if (isWin2003) return "Win2003";   
                            var isWinVista= sUserAgent.indexOf("Windows nt 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;   
                            if (isWinVista) return "WinVista";   
                            var isWin7 = sUserAgent.indexOf("Windows nt 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;   
                            if (isWin7) return "Win7";   
                            var isWin8 = sUserAgent.indexOf("windows nt 6.2") > -1 || sUserAgent.indexOf("Windows 8") > -1;  
                            if (isWin8) return "Win8"; 
                            var isWin10 = sUserAgent.indexOf("windows nt 10.0")>-1||sUserAgent.indexOf("Windows 10")>-1;    
                            if(isWin10)return "Win10";                
                        }  
                        return "其他";
                  },  
                  getDigits:function(){ //判断当前操作系统的版本号 
                    var sUserAgent = navigator.userAgent.toLowerCase();   
                    var is64 = sUserAgent.indexOf("win64") > -1||sUserAgent.indexOf("wow64") > -1;  
                    if (is64) {  
                        return "64位";  
                    }else{  
                       return "32位";    
                    }  
                },
                  getBrowser: function() {  // 获取浏览器名
                      var rMsie = /(msie\s|trident\/7)([\w\.]+)/;  
                      var rTrident = /(trident)\/([\w.]+)/;  
                      var rEdge = /(chrome)\/([\w.]+)/;//IE
                      
                      var rFirefox = /(firefox)\/([\w.]+)/;  //火狐
                      var rOpera = /(opera).+version\/([\w.]+)/;  //旧Opera
                      var rNewOpera = /(opr)\/(.+)/;  //新Opera 基于谷歌
                      var rChrome = /(chrome)\/([\w.]+)/; //谷歌 
                      var rUC = /(chrome)\/([\w.]+)/;//UC
                      var rMaxthon = /(chrome)\/([\w.]+)/;//遨游
                      var r2345 =  /(chrome)\/([\w.]+)/;//2345
                      var rQQ =  /(chrome)\/([\w.]+)/;//QQ
                      //var rMetasr =  /(metasr)\/([\w.]+)/;//搜狗
                      var rSafari = /version\/([\w.]+).*(safari)/;
                      
                      var ua = navigator.userAgent.toLowerCase();  
 
 
                      var matchBS, matchBS2;  
                      
                      //IE 低版
                      matchBS = rMsie.exec(ua);  
                      if (matchBS != null) {  
                          matchBS2 = rTrident.exec(ua);  
                          if (matchBS2 != null) {  
                              switch (matchBS2[2]) {  
                              case "4.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 8"  //内核版本号
                                  };  
                                  break;  
                              case "5.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 9"  
                                  };  
                                  break;  
                              case "6.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 10"  
                                  };  
                                  break;  
                              case "7.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 11"  
                                  };  
                                  break;  
                              default:  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "Undefined"  
                                  };  
                              }  
                          } else {  
                              return {  
                                  browser: "Microsoft IE",  
                                  version: "IE:"+matchBS[2] || "0"  
                              };  
                          }  
                      }  
                      //IE最新版
                       matchBS = rEdge.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "Microsoft Edge",  
                              version: "Chrome/"+matchBS[2] || "0"  
                          };  
                      }  
                                          //UC浏览器                      
                      matchBS = rUC.exec(ua);                                    
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "UC",  
                              version: "Chrome/"+matchBS[2] || "0"  
                          };  
                      }  
                      //火狐浏览器
                      matchBS = rFirefox.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "火狐",  
                              version: "Firefox/"+matchBS[2] || "0"  
                          };  
                      }  
                                         //Oper浏览器                     
                     matchBS = rOpera.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "Opera",  
                              version: "Chrome/"+matchBS[2] || "0"  
                          };  
                      }  
                      //遨游
                       matchBS = rMaxthon.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "遨游",  
                              version: "Chrome/"+matchBS[2] || "0"  
                          };  
                      }  
                                          //2345浏览器                      
                       matchBS = r2345.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "2345",  
                              version: "Chrome/ "+matchBS[2] || "0"  
                          };  
                      }  
                                          //QQ浏览器                      
                      matchBS = rQQ.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "QQ",  
                              version: "Chrome/"+matchBS[2] || "0"  
                          };  
                      }  
                      //Safari(苹果)浏览器
                      matchBS = rSafari.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent)) && (!(window.chrome)) && (!(window.opera))) {  
                          return {  
                              browser: "Safari",  
                              version: "Safari/"+matchBS[1] || "0"  
                          };  
                      }  
                      //谷歌浏览器
                       matchBS = rChrome.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          matchBS2 = rNewOpera.exec(ua);  
                          if (matchBS2 == null) {  
                              return {  
                                  browser: "谷歌",  
                                  version: "Chrome/"+matchBS[2] || "0"  
                              };  
                          } else {  
                              return {  
                                  browser: "Opera",  
                                  version: "opr/"+matchBS2[2] || "0"  
                              };  
                          }  
                      }  
                  }  
      };  
      BrowserMatch.init();  
      alert("当前浏览器为:" + BrowserMatch.browser +"\n版本为:"+ BrowserMatch.version + "\n所处操作系统为:"+BrowserMatch.OS); 
        })(jQuery);

最后运行的结果:

如果你 是想获取 浏览器厂商自身的内核版本,那么只需要修改   getBrowser: function() 方法 代码如下:

                              getBrowser: function() {  // 获取浏览器名
                      var rMsie = /(msie\s|trident\/7)([\w\.]+)/;  
                      var rTrident = /(trident)\/([\w.]+)/;  
                      var rEdge = /(edge)\/([\w.]+)/;//IE
                      
                      var rFirefox = /(firefox)\/([\w.]+)/;  //火狐
                      var rOpera = /(opera).+version\/([\w.]+)/;  //旧Opera
                      var rNewOpera = /(opr)\/(.+)/;  //新Opera 基于谷歌
                      var rChrome = /(chrome)\/([\w.]+)/; //谷歌 
                      var rUC = /(ubrowser)\/([\w.]+)/;//UC
                      var rMaxthon = /(maxthon)\/([\w.]+)/;//遨游
                      var r2345 =  /(2345explorer)\/([\w.]+)/;//2345
                      var rQQ =  /(qqbrowser)\/([\w.]+)/;//QQ
                      //var rMetasr =  /(metasr)\/([\w.]+)/;//搜狗
                      var rSafari = /version\/([\w.]+).*(safari)/;
                      
                      var ua = navigator.userAgent.toLowerCase();  
 
                      var matchBS, matchBS2;  
                      
                      //IE 低版
                      matchBS = rMsie.exec(ua);  
                      if (matchBS != null) {  
                          matchBS2 = rTrident.exec(ua);  
                          if (matchBS2 != null) {  
                              switch (matchBS2[2]) {  
                              case "4.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 8"  //内核版本号
                                  };  
                                  break;  
                              case "5.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 9"  
                                  };  
                                  break;  
                              case "6.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 10"  
                                  };  
                                  break;  
                              case "7.0":  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "IE: 11"  
                                  };  
                                  break;  
                              default:  
                                  return {  
                                      browser:  
                                      "Microsoft IE",  
                                      version: "Undefined"  
                                  };  
                              }  
                          } else {  
                              return {  
                                  browser: "Microsoft IE",  
                                  version: "IE:"+matchBS[2] || "0"  
                              };  
                          }  
                      }  
                      //IE最新版
                       matchBS = rEdge.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "Microsoft Edge",  
                              version: "Edge/"+matchBS[2] || "0"  
                          };  
                      }  
                                          //UC浏览器                      
                      matchBS = rUC.exec(ua);                                    
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "UC",  
                              version: "ubrowser/"+matchBS[2] || "0"  
                          };  
                      }  
                      //火狐浏览器
                      matchBS = rFirefox.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "火狐",  
                              version: "Firefox/"+matchBS[2] || "0"  
                          };  
                      }  
                                          //Oper浏览器                     
                     matchBS = rOpera.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "Opera",  
                              version: "Opera/"+matchBS[2] || "0"  
                          };  
                      }  
                      //遨游
                       matchBS = rMaxthon.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "遨游",  
                              version: "Maxthon/"+matchBS[2] || "0"  
                          };  
                      }  
                                          //2345浏览器                      
                       matchBS = r2345.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "2345",  
                              version: "2345explorer/ "+matchBS[2] || "0"  
                          };  
                      }  
                                          //QQ浏览器                      
                      matchBS = rQQ.exec(ua);                          
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          return {  
                              browser: "QQ",  
                              version: "qqbrowser/"+matchBS[2] || "0"  
                          };  
                      }  
                      //Safari(苹果)浏览器
                      matchBS = rSafari.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent)) && (!(window.chrome)) && (!(window.opera))) {  
                          return {  
                              browser: "Safari",  
                              version: "Safari(win版)/"+matchBS[1] || "0"  
                          };  
                      }  
                      //谷歌浏览器
                       matchBS = rChrome.exec(ua);  
                      if ((matchBS != null) && (!(window.attachEvent))) {  
                          matchBS2 = rNewOpera.exec(ua);  
                          if (matchBS2 == null) {  
                              return {  
                                  browser: "谷歌",  
                                  version: "Chrome/"+matchBS[2] || "0"  
                              };  
                          } else {  
                              return {  
                                  browser: "Opera",  
                                  version: "opr/"+matchBS2[2] || "0"  
                              };  
                          }  
                      }  
                  } 
运行结果:

如果你有更好的解决方案,欢迎相互交流。


原文地址: https://blog.youkuaiyun.com/u012762221/article/details/80419331

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值