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

Posted

技术标签:

【中文标题】jQuery - 检测操作系统和操作系统版本【英文标题】:jQuery - detecting the operating system and operating system version 【发布时间】:2012-02-05 04:04:24 【问题描述】:

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

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

例如对于 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,取决于他们应该为当前浏览器使用的插件),以便将它们带到正确的版本该浏览器的文件以及该操作系统/操作系统版本的正确保存路径。到目前为止,这有意义吗?

基本上我的问题是,有人知道检测操作系统版本的方法吗?我目前正在使用http://www.stoimen.com/blog/2009/07/04/jquery-os-detection/,但这并没有给出操作系统版本,只有操作系统。我尝试遍历存储在导航器对象中的所有变量,但没有成功。任何帮助将不胜感激。

编辑:感谢 Nates 的回答,我已将确切的代码放在 http://jsfiddle.net/Mu8r5/1/。我希望这对将来的某人有所帮助。

【问题讨论】:

【参考方案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/

【讨论】:

感谢 sn-p - 这看起来是一个很好的起点!稍后当我完成它时,我会在我的问题中发布一个 jsfiddle。【参考方案2】:

你可以使用这个很棒的 javascript 库:http://www.visitorjs.com/details 它最近开源了

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

【讨论】:

感谢您的指点,我想我会选择 Nates 的答案,因为我更喜欢编写自己的代码(1 - 我确切地知道它的作用,2 - 我通过这种方式了解更多信息)。我还查看了该代码,并仔细检查了,但它似乎没有操作系统版本,只有操作系统。还是谢谢。【参考方案3】:

堆栈溢出问题 Detect exact OS version from browser 详细介绍了有关从 User-Agent 标头获取操作系统版本的一些有趣细节,我认为该标头包含可以从 JavaScript 访问的相同信息。

【讨论】:

以上是关于jQuery - 检测操作系统和操作系统版本的主要内容,如果未能解决你的问题,请参考以下文章

Linux中系统状态检测命令

jQuery/Javascript 在没有插件的情况下检测操作系统?

每日一书《锋利的jquery 第2版》 附源码

日语版xp系统

基于深度学习的安全帽检测系统(YOLOv5清新界面版,Python代码)

javascript中的操作系统和操作系统版本检测[重复]