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

Cla*_*Boy 6 javascript jquery browser-detection

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

我想要做的是,在安装页面上,检测他们正在使用哪个浏览器和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/上.我希望这可以帮助将来的某个人.

Nat*_*lam 23

您最好的选择是使用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) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/45jEc/


Ale*_*tic 5

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

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