我正在开发单页应用。快捷方式应该因操作系统而异,尤其是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中检测操作系统的页面:
答案 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
标签,它看起来像这样:
这个标签通常是空的,这很奇怪。无论如何
单击选项卡中的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"