使用javascript在浏览器中检测操作系统版本的类型

时间:2012-09-28 18:01:35

标签: php javascript macos browser

  

可能重复:
  Detect exact OS version from browser

我一直在寻找用户试图获得操作系统版本的不同帖子,但我找不到合适的解决方案来检测确切的操作系统版本名称。

我正在开发一个在 MAC OS X 10.8.2版本(Lion)上运行不正常的Web应用程序。我有自动定位的东西,它将无法工作,我试图从客户端浏览器获取确切的版本号,并相应地导航代码。我知道我可以使用

获取操作系统名称
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";

但是版本名称呢?

任何帮助都将受到高度赞赏。

4 个答案:

答案 0 :(得分:1)

var matches = navigator.userAgent.match(/Mac OS X ([0-9.]+)/i);

if(matches !== null && typeof matches[1] !== 'undefined')
{
    var versionNames = { '10.0': 'Cheetah', '10.1': 'Puma', '10.2': 'Jaguar', '10.3': 'Panther', '10.4': 'Tiger', '10.5': 'Leopard', '10.6': 'Snow Leopard', '10.7': 'Lion', '10.8': 'Mountain Lion' };

    if(typeof versionNames[matches[1]] !== 'undefined')
    {
        alert(versionNames[matches[1]]);
    }
    else
    {
        alert('Unidentified Mac version');        
    }
}
else
{
    alert('You are not running Mac OS X');    
}

这可能是你正在寻找的,虽然这可能是不可靠的。

Demo at jsFiddle

答案 1 :(得分:0)

这就是你要找的吗?

navigator.platform

答案 2 :(得分:0)

看一下navigator.useragent变量。这不是100%可靠,但使用演绎,您至少可以在大多数案例中为此功能提供支持。较旧的浏览器可能没有设置此值,但大多数较新的浏览器(大约5年左右)应该 - 并且这是您的大多数用户。

答案 3 :(得分:0)

var v = navigator.userAgent.match(/Mac OS X ([\d_]+)/)
if(v!=null && v[1] == "10_8_2") {
    alert("U r not support!");
}