通过js获取系统版本以及浏览器版本

Posted § 薄樱 §……Design of paradise

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过js获取系统版本以及浏览器版本相关的知识,希望对你有一定的参考价值。

技术分享图片
  1 function getOsInfo() {
  2     var userAgent = navigator.userAgent.toLowerCase();
  3     var name = ‘Unknown‘;
  4     var version = "Unknown";
  5     if(userAgent.indexOf("win") > -1) {
  6         name = "Windows";
  7         if(userAgent.indexOf("windows nt 5.0") > -1) {
  8             version = "Windows 2000";
  9         } else if(userAgent.indexOf("windows nt 5.1") > -1 || userAgent.indexOf("windows nt 5.2") > -1) {
 10             version = "Windows XP";
 11         } else if(userAgent.indexOf("windows nt 6.0") > -1) {
 12             version = "Windows Vista";
 13         } else if(userAgent.indexOf("windows nt 6.1") > -1 || userAgent.indexOf("windows 7") > -1) {
 14             version = "Windows 7";
 15         } else if(userAgent.indexOf("windows nt 6.2") > -1 || userAgent.indexOf("windows 8") > -1) {
 16             version = "Windows 8";
 17         } else if(userAgent.indexOf("windows nt 6.3") > -1) {
 18             version = "Windows 8.1";
 19         } else if(userAgent.indexOf("windows nt 6.2") > -1 || userAgent.indexOf("windows nt 10.0") > -1) {
 20             version = "Windows 10";
 21         } else {
 22             version = "Unknown";
 23         }
 24     } else if(userAgent.indexOf("iphone") > -1) {
 25         name = "Iphone";
 26     } else if(userAgent.indexOf("mac") > -1) {
 27         name = "Mac";
 28     } else if(userAgent.indexOf("x11") > -1 || userAgent.indexOf("unix") > -1 || userAgent.indexOf("sunname") > -1 || userAgent.indexOf("bsd") > -1) {
 29         name = "Unix";
 30     } else if(userAgent.indexOf("linux") > -1) {
 31         if(userAgent.indexOf("android") > -1) {
 32             name = "Android"
 33         } else {
 34             name = "Linux";
 35         }
 36 
 37     } else {
 38         name = "Unknown";
 39     }
 40     var os = new Object();
 41     os.name =  name;
 42     os.version = version;
 43     return os;
 44     //document.write("系统:" + os.name + "版本:" + os.name)
 45 }
 46 function getBrowerInfo(){
 47     var Browser = Browser || (function(window) {
 48                     var document = window.document,
 49                         navigator = window.navigator,
 50                         agent = navigator.userAgent.toLowerCase(),
 51                         //IE8+支持.返回浏览器渲染当前文档所用的模式
 52                         //IE6,IE7:undefined.IE8:8(兼容模式返回7).IE9:9(兼容模式返回7||8)
 53                         //IE10:10(兼容模式7||8||9)
 54                         IEMode = document.documentMode,
 55                         //chorme
 56                         chrome = window.chrome || false,
 57                         System = {
 58                             //user-agent
 59                             agent: agent,
 60                             //是否为IE
 61                             isIE: /trident/.test(agent),
 62                             //Gecko内核
 63                             isGecko: agent.indexOf("gecko") > 0 && agent.indexOf("like gecko") < 0,
 64                             //webkit内核
 65                             isWebkit: agent.indexOf("webkit") > 0,
 66                             //是否为标准模式
 67                             isStrict: document.compatMode === "CSS1Compat",
 68                             //是否支持subtitle
 69                             supportSubTitle: function() {
 70                                 return "track" in document.createElement("track");
 71                             },
 72                             //是否支持scoped
 73                             supportScope: function() {
 74                                 return "scoped" in document.createElement("style");
 75                             },
 76 
 77                             //获取IE的版本号
 78                             ieVersion: function() {
 79                                 var rMsie  = /(msies|trident.*rv:)([w.]+)/;
 80                                 var ma = window.navigator.userAgent.toLowerCase()
 81                                 var  match  = rMsie.exec(ma);  
 82                                 try {
 83                                     return match[2];
 84                                 } catch (e) {
 85 //                                    console.log("error");
 86                                     return IEMode;
 87                                 }
 88                             },
 89                             //Opera版本号
 90                             operaVersion: function() {
 91                                 try {
 92                                     if (window.opera) {
 93                                         return agent.match(/opera.([d.]+)/)[1];
 94                                     } else if (agent.indexOf("opr") > 0) {
 95                                         return agent.match(/opr/([d.]+)/)[1];
 96                                     }
 97                                 } catch (e) {
 98 //                                    console.log("error");
 99                                     return 0;
100                                 }
101                             }
102                         }; 
103 
104                     try {
105                         //浏览器类型(IE、Opera、Chrome、Safari、Firefox)
106                         System.type = System.isIE ? "IE" :
107                             window.opera || (agent.indexOf("opr") > 0) ? "Opera" :
108                             (agent.indexOf("chrome") > 0) ? "Chrome" :
109                             //safari也提供了专门的判定方式
110                             window.openDatabase ? "Safari" :
111                             (agent.indexOf("firefox") > 0) ? "Firefox" :
112                             ‘unknow‘;
113 
114                         //版本号 
115                         System.version = (System.type === "IE") ? System.ieVersion() :
116                             (System.type === "Firefox") ? agent.match(/firefox/([d.]+)/)[1] :
117                             (System.type === "Chrome") ? agent.match(/chrome/([d.]+)/)[1] :
118                             (System.type === "Opera") ? System.operaVersion() :
119                             (System.type === "Safari") ? agent.match(/version/([d.]+)/)[1] :
120                             "0";
121 
122                         //浏览器外壳
123                         System.shell = function() {
124 
125                             if (agent.indexOf("edge") > 0) {
126                                 System.version = agent.match(/edge/([d.]+)/)[1] || System.version;
127                                 return "edge浏览器";
128                             }
129                             //遨游浏览器
130                             if (agent.indexOf("maxthon") > 0) {
131                                 System.version = agent.match(/maxthon/([d.]+)/)[1] || System.version;
132                                 return "傲游浏览器";
133                             }
134                             //QQ浏览器
135                             if (agent.indexOf("qqbrowser") > 0) {
136                                 System.version = agent.match(/qqbrowser/([d.]+)/)[1] || System.version;
137                                 return "QQ浏览器";
138                             }
139 
140                             //搜狗浏览器
141                             if (agent.indexOf("se 2.x") > 0) {
142                                 return ‘搜狗浏览器‘;
143                             }
144 
145                             //Chrome:也可以使用window.chrome && window.chrome.webstore判断
146                             if (chrome && System.type !== "Opera") {
147                                 var external = window.external,
148                                     clientInfo = window.clientInformation,
149                                     //客户端语言:zh-cn,zh.360下面会返回undefined
150                                     clientLanguage = clientInfo.languages;
151 
152                                 //猎豹浏览器:或者agent.indexOf("lbbrowser")>0
153                                 if (external && ‘LiebaoGetVersion‘ in external) {
154                                     return ‘猎豹浏览器‘;
155                                 }
156                                 //百度浏览器
157                                 if (agent.indexOf("bidubrowser") > 0) {
158                                     System.version = agent.match(/bidubrowser/([d.]+)/)[1] ||
159                                         agent.match(/chrome/([d.]+)/)[1];
160                                     return "百度浏览器";
161                                 }
162                                 //360极速浏览器和360安全浏览器
163                                 if (System.supportSubTitle() && typeof clientLanguage === "undefined") {
164                                     //object.key()返回一个数组.包含可枚举属性和方法名称
165                                     var storeKeyLen = Object.keys(chrome.webstore).length,
166                                         v8Locale = "v8Locale" in window;
167                                     return storeKeyLen > 1 ? ‘360极速浏览器‘ : ‘360安全浏览器‘;
168                                 }
169                                 return "Chrome";
170                             }
171                             return System.type;
172                         };
173 
174                         //浏览器名称(如果是壳浏览器,则返回壳名称)
175                         System.name = System.shell();
176                         //对版本号进行过滤过处理
177                         //    System.version = System.versionFilter(System.version);
178 
179                     } catch (e) {
180 //                        console.log(e.message);
181                     }
182                     return {
183                         client: System
184                     };
185 
186                 })(window);
187                 if (Browser.client.name == undefined || Browser.client.name=="") {
188                     Browser.client.name = "Unknown";
189                     Browser.client.version = "Unknown";
190                 }else if(Browser.client.version == undefined){
191                     Browser.client.version = "Unknown";
192                 }
193 //                document.write(Browser.client.name + " " + Browser.client.version);
194         return Browser ;
195 }
View Code

 自己备用

以上是关于通过js获取系统版本以及浏览器版本的主要内容,如果未能解决你的问题,请参考以下文章

获取浏览器版本号和型号

[完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器

js 获取浏览器名字版本

js获取设备

兼容ie8,firefox,chrome浏览器的代码片段

JS 获取当前操作系统类型,浏览器,终端类型的工具