【问题标题】:Detect the type of OS version in browser using javascript [duplicate]使用javascript检测浏览器中操作系统版本的类型[重复]
【发布时间】:2012-09-20 15:19:47
【问题描述】:

可能重复:
Detect exact OS version from browser

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

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

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

但是版本名称呢?

我们将不胜感激。

【问题讨论】:

  • 我告诉过你,我看了几个帖子,但没有一个正确的解决方案
  • 好的。不过,他只是链接了一个。嗯,有点——看起来答案是“你不能”,至少不可靠。用户可以将其用户代理字符串更改为他们想要的任何内容。

标签: php javascript macos browser


【解决方案1】:

这就是你要找的吗?

navigator.platform

【讨论】:

  • 它不会给我确切的 MAC OS 版本?我正在寻找一个特定的版本。
【解决方案2】:
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.

【讨论】:

  • 与接受的答案相同的问题(已更正):这会引发空指针异常:“如果未找到匹配项,此方法将返回 null。” (来源w3schools.com/jsref/jsref_match.asp
  • @MisterHenson 谢谢你……虽然我改进了你的编辑。
【解决方案3】:

看一下 navigator.useragent 变量。这不是 100% 可靠的,但使用演绎法,您至少可以在大多数 情况下通过一点工作来支持此功能。较旧的浏览器可能没有设置此值,但大多数较新的浏览器(过去 5 年左右)应该 - 这就是您的大多数用户。

【讨论】:

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

    【讨论】:

      猜你喜欢
      • 2021-07-13
      • 2011-07-08
      • 2010-10-13
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多