2014-08-29 110 views
0

我正在开发单页应用程序。快捷键应该从不同的操作系统,特别是Mac OS X不同。其他通常结合击键与Ctrl,但Mac与命令组合。要在Chrome中检测操作系统的JavaScript版本37.0.2062.94

到现在为止,我试图检测操作系统是否是Mac还是不受此代码:

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

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

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

我检查了谷歌文档在Chrome和它的快捷与行之有效Cmd的在Mac和按Ctrl的窗口。 Chrome中应该有一种检测JavaScript的操作系统。

编辑 我用Google搜索,发现有关在javascript检测OS的某些页面:

+0

navigator.userAgent? – 2014-08-29 08:02:44

+0

[从浏览器检测确切的操作系统版本]的可能重复(http://stackoverflow.com/questions/647969/detect-exact-os-version-from-browser) – 2014-08-31 00:44:40

回答

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" 
0

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

例如,在运行小的JavaScript你必须经过:

<html class="webkit chrome mac">