使用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);

最后运行的结果:

使用JS 获取当前用户使用的浏览器信息以及操作系统版本信息_第1张图片

如果你 是想获取 浏览器厂商自身的内核版本,那么只需要修改   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"  
							  };  
						  }  
					  }  
				  } 

运行结果:

使用JS 获取当前用户使用的浏览器信息以及操作系统版本信息_第2张图片


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


你可能感兴趣的:(JavaScript)