JavaScript 判断是否为Mac系统
当我们开发功能涉及到键盘快捷键时(如 Ctrl+S
快速保存文档,Ctrl+Enter
换行),
我们要对Mac OS系统做特殊处理,因为Mac OS下是用Command表示Control,Ctrl+S
就变成了 Cmd+S
。
通过观察,我们可以发现User Agent是中带有系统标识的。
Window的User Agent例子,Windows NT
是系统标识。
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
Mac的User Agent例子,Mac OS X
是系统标识。
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
这时通过User Agent来检查,是最简单有效的办法。
<script>
if (navigator.userAgent.indexOf('Mac OS X') !== -1) {
document.write('您是mac系统');
} else {
document.write('您是pc系统');
}
</script>
通过User Agent判断,我们还可以给 body
加上系统的类名,针对系统做样式优化。
if (navigator.userAgent.indexOf('Mac OS X') !== -1) {
$('body').addClass('mac');
} else {
$('body').addClass('pc');
}
同理,需要输出到页面时,可以在PHP端判断User Agent
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac OS X') === false) {
$ctrlKey = 'Ctrl';
} else {
$ctrlKey = 'Cmd';
}