jQuery - 检测操作系统和操作系统版本
我过去几个月一直在为我的公司编写一个脚本,并且只是用安装说明为其设计了主站点(我们的员工遍布全球很少有人听说过使用脚本,更不用说使用它们了,所以这个前端是为了减少我花时间支持脚本的时间)。jQuery - 检测操作系统和操作系统版本
我想要做的是在安装页面上检测他们使用的浏览器和OS/OS版本,以便我可以突出显示最相关的指令,比其他指令稍暗,或者不显示不相关的部分。
例如,对于IE6,您必须使用Trixie(我相信)来安装用户脚本,并且这仅在Win XP上受支持。 Win XP支持IE7,Win XP支持IE8 &仅Win 7支持Win 7和IE9。对于IE7,8 & 9我建议使用IEPro。 Trixie & IEPro的区别在于Trixie需要.user.js的文件扩展名,它必须保存在C:/ Program Files/bhelpuri中。另一方面,IEPro要求扩展名为.ieuser并保存到不同的位置。特别是对于IE,我想检测版本并仅显示正确的链接(根据他们应该用于当前浏览器的插件,使用.user.js或.ieuser),以便它们被带到正确的版本该浏览器文件的正确保存路径为该OS/OS版本。这到目前为止有什么意义吗?
基本上我的问题是,有谁知道一种方法来检测操作系统版本?我目前使用的是http://www.stoimen.com/blog/2009/07/04/jquery-os-detection/,但不支持操作系统版本,只有操作系统。我试过循环遍历导航器对象中存储的所有变量,但没有成功。任何帮助将不胜感激。
编辑:由于Nates的回答,我已经把确切的代码在http://jsfiddle.net/Mu8r5/1/。我希望这可以帮助未来的人。
最好的办法是使用navigator.userAgent属性。它会给出Windows版本号。你可以看到的Windows版本号映射到OS这里怎么一个表:
下面是一些例子检测代码:
var os = (function() {
var ua = navigator.userAgent.toLowerCase();
return {
isWin2K: /windows nt 5.0/.test(ua),
isXP: /windows nt 5.1/.test(ua),
isVista: /windows nt 6.0/.test(ua),
isWin7: /windows nt 6.1/.test(ua),
isWin8: /windows nt 6.2/.test(ua),
isWin81: /windows nt 6.3/.test(ua)
};
}());
if(os.isWin7) {
...
}
堆栈溢出问题 Detect exact OS version from browser进入了一些有趣的细节,从User-Agent头获取操作系统版本,我相信它包含了可以从JavaScript访问的相同信息。
你可以使用这个伟大的JavaScript库:http://www.visitorjs.com/details它是开源的最近
编辑:其实,现在更名为session.js http://github.com/codejoust/session.js据我所知,这是你能得到的最好。
感谢您的指点,我我想我会选择Nates的答案,因为我更愿意写自己的代码(1 - 我确切知道它做了什么,2 - 我更多地学习)。我也仔细看了一遍这个代码,然后进行了双重检查,但它看起来并不像操作系统版本,只有操作系统。不管怎么说,还是要谢谢你。 – ClarkeyBoy 2012-01-08 09:15:46
不适用于windows 8.1 ie 11,因为O/S回来作为N/A – Rippo 2014-04-25 07:10:26
感谢您的片段 - 这看起来像一个伟大的起点!我会在我的问题中稍后发布一个jsfiddle,当我完成它。 – ClarkeyBoy 2012-01-08 09:16:54