jQuery - 检测操作系统及其版本

7

我过去几个月一直在为我的公司编写用户脚本,并刚刚设计了它的主要站点,包括安装说明(我们的员工遍布全球,很少听说过用户脚本,更不用说使用它们,因此这个前端旨在缩短我支持脚本所需的时间)。

我想做的是,在安装页面上检测他们正在使用的浏览器和操作系统/操作系统版本,以便我可以将最相关的说明略微加深颜色,或者根本不显示不相关的部分。

例如,对于IE6,您必须使用Trixie(我相信)来安装用户脚本,而这仅受Win XP支持。 IE7支持Win XP,IE8支持Win XP和Win 7,IE9仅支持Win 7。 对于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/,但它只提供操作系统,没有操作系统版本。 我尝试循环遍历存储在navigator对象中的所有变量,但没有成功。 任何帮助都将不胜感激。

编辑:由于Nate的答案,我已经将确切的代码放在http://jsfiddle.net/Mu8r5/1/。 希望这能帮助未来的某个人。

3个回答

25

你最好使用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/


谢谢提供这段代码 - 这看起来是一个很好的起点! 当我完成后,我会在我的问题中发布一个jsfiddle。 - ClarkeyBoy

5

1
谢谢你的指引,我想我会选择Nate的答案,因为我更喜欢编写自己的代码(1-我知道它确切地做了什么,2-我可以通过这种方式学到更多)。我也查看了那段代码,并进行了双重检查,但它似乎没有涉及到操作系统版本,只是操作系统而已。无论如何还是谢谢。 - ClarkeyBoy

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接