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

时间:2012-01-08 01:09:21

标签: javascript jquery browser-detection

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

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

例如对于IE6,您必须使用Trixie(我相信)来安装用户脚本,这仅在Win XP上受支持。 Win XP支持IE7,Win XP和Linux支持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/。我希望这有助于将来的某个人。

3 个答案:

答案 0 :(得分: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) {
    ...
}

http://jsfiddle.net/45jEc/

答案 1 :(得分:5)

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

编辑:实际上,它现在已重命名为session.js http://github.com/codejoust/session.js,据我所知,这是您可以获得的最佳效果。

答案 2 :(得分:1)

Stack Overflow问题 Detect exact OS version from browser介绍了从User-Agent标题获取操作系统版本的一些有趣细节,我相信它包含可以从JavaScript访问的相同信息。