繁体   English   中英

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

[英]jQuery - detecting the operating system and operating system version

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

我想要做的是,在安装页面上,检测他们正在使用哪个浏览器和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访问的相同信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM