0

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

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

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

这段代码运行良好。但是,将 Chrome 更新到最新版本 (37.0.2062.94) 后,它不再工作了。

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

我在 Chrome 中检查了 Google Docs,它的快捷方式Cmd在 Mac 和CtrlWindow 中运行良好。应该有一种方法可以在 Chrome 中检测 JavaScript 中的操作系统。

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

4

2 回答 2

0

你应该很高兴,navigation.userAgent但你必须解析响应。这是一个非常好的小javascripthtml ,可以通过向标签添加类来检测操作系统、浏览器、设备、设备版本等。它旨在帮助您使用 css 样式,但它也有其他用途。

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

<html class="webkit chrome mac">
于 2014-08-29T08:14:46.087 回答
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开发人员工具中的选项卡,它看起来像这样: 在此处输入图像描述

奇怪的是这个标签通常是空的。无论如何,在我单击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"
于 2014-08-29T09:15:28.237 回答