用于检测Chrome版本37.0.2062.94中的操作系统的JavaScript

时间:2014-08-29 07:59:48

标签: javascript google-chrome os-detection

我正在开发单页应用。快捷方式应该因操作系统而异,尤其是Mac OS X.其他操作系统通常将按键与 Ctrl 结合使用,但Mac与 Cmd 组合。

到目前为止,我试图通过以下代码检测操作系统是否为mac:

var bMac = navigator.appVersion.indexOf('Mac') > -1;

此代码运作良好。 但是,在将Chrome更新为最新版本(37.0.2062.94)后,它不再有效。

有没有在JavaScript中检测浏览器的主机操作系统?

我在Chrome中检查了Google文档,它的快捷方式在Mac中的 Cmd 和在Window中的 Ctrl 中运行良好。应该有办法在Chrome中检测JavaScript中的操作系统。

修改 我用谷歌搜索并找到了一些关于在javascript中检测操作系统的页面:

2 个答案:

答案 0 :(得分:0)

使用navigation.userAgent你应该好好去,但你必须解析响应。这是一个非常好的small javascript来检测操作系统,浏览器,设备,设备版本等。通过向html标记添加类。它旨在帮助您使用CSS样式,但它也有其他用途。

示例,在运行那个小javascript之后,您将拥有:

<html class="webkit chrome mac">

答案 1 :(得分:0)

升级版本时似乎有一些意想不到的副作用。它仍然很难理解。

当我查看navigator.appVersion时,看起来很奇怪Linux; Android...

> navigator.appVersion
  "5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36"

我检查了开发人员工具中的Emulation标签,它看起来像这样: enter image description here

这个标签通常是空的,这很奇怪。无论如何 单击选项卡中的Reset按钮后,它会返回。

> navigator.appVersion
  "5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36"