前言
尝试着在百度、谷歌搜索过相关资料,大多都是互相转载而且版权一大堆内容特垃圾的那种~~鄙视中。。
现在需要的是获取浏览器的具体版本和操作系统的具体版本,比如iPhone
,Android
,Win10
,IE11
等等比较新鲜的东西,网上传的那种就见鬼去了~
所以呢,我就打算自己动刀,想一个比较完美又可以扩展的办法,终于弄出了点眉目。
获取操作系统以及版本
【思路】
创建一个对象数组,保存操作系统的通用名称,比如Windows
,Mac OSX
,iPhone
等,然后再保存一个对应的正则表达式,用来从UserAgent
中匹配出具体的版本号。
【实现】
var info = {}; var temp = {}; info.ua = navigator.userAgent; // // 获取操作系统版本 // temp.os = { 'Mac OS X': /Mac OS X ([\d._])/, 'iPhone OS': /iPhone OS ([\d._])/, } for (var o in temp.os){ if (info.ua.indexOf(o)) { var m = info.ua.match(temp.os[o]); info.os = m ? m[0] : (info.os || 'UnknowOS'); }; }上面的代码中
temp.os
对象可以自由地扩展,我想你都懂并能领会其中的好处!
获取浏览器和版本
同上面一样,就不多说了,直接上代码:
// // 获取浏览器版本 // temp.browser = { 'Safari': /Safari\/([\d.]+)$/, 'Chrome': /Chrome\/([\d.]+)/, 'Firefox': /Firefox\/([\d.]+)$/, } for (var b in temp.browser){ if (info.ua.indexOf(b)) { var m = info.ua.match(temp.browser[b]); info.browser = m ? m[0] : (info.browser || 'UnknowBrowser'); }; }
总结
其实呢,我觉得js
好玩的地方非常多,有很多地方是其他语言无法超越的。当然,每个语言都有自己的长处,随个人所好~