jQuery – 检测操作系统和操作系统版本

我在过去的几个月里一直在为我的公司编写一个用户脚本,并且刚刚为它设计了主要网站的安装说明(我们的员工遍布全球,很少有人听过用户脚本,更不用说使用它们了,所以这个前端意味着减少我花在支持剧本上的时间。

我想要做的是,在安装页面上,检测他们正在使用哪个浏览器和OS / OS版本,以便我可以突出显示比其余部分稍暗的最相关指令,或者根本不显示不相关的部分。

例如,对于IE6,您必须使用Trixie(我相信)来安装用户脚本,这仅在Win XP上受支持。 Win XP支持IE7,Win XP和Win 7支持IE8,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版本号如何映射到操作系统的表:

OSVERSIONINFO

以下是一些示例检测代码:

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) { ... } 

http://jsfiddle.net/45jEc/

您可以使用这个优秀的JavaScript库: http : //www.visitorjs.com/details它最近是开源的

编辑:实际上,它现在重命名为session.js http://github.com/codejoust/session.js ,据我所知,这是你能得到的最好的。

Stack Overflow问题从浏览器中检测确切的操作系统版本有一些有趣的细节,关于从User-Agent标头获取操作系统版本,我相信它包含可以从JavaScript访问的相同信息。