代码片段 → JavaScript → 用 JavaScript 检测 Mac 或 PC 用 JavaScript 检测 Mac 或 PC Chris Coyier 于 2012 年 6 月 20 日 用户代理测试很糟糕,但有时您需要它来完成一些细微的事情。在我的例子中,我使用它来调整显示的键盘快捷键(Command 或 Control)。没什么大不了的。 if (navigator.userAgent.indexOf('Mac OS X') != -1) { $("body").addClass("mac"); } else { $("body").addClass("pc"); } 其中的语句使用 jQuery 添加一个 body 类,但这并不是必需的,您可以做任何事情。
这对于您的预期用途来说可能有点过头了,但如果您需要调整项目或移动设备上的某些东西不太正确,它确实非常有用。
http://rafael.adm.br/css_browser_selector/
在尝试解决显示 Cmd 与 Ctrl 的相同问题时,我找到了这段代码。但如果有人在 Mac 上使用 Linux(带有 Mac 键盘)呢?我已经在 stackoverflow 上发布了这个问题。
我想补充一点,我们还可以使用带 platform 属性的 navigator 对象……object.platform……它可以专门告诉我们,例如,它是 macintosh 68k 还是 windows 64bit……
这正是我需要的,用来检查它是否是一个 MAC,用于 .exe 文件下载链接(为 Mac 提供不同的链接)
您可以将类与文件类型选择器结合使用
.mac a[href$=”.dmg”] { STLYE }
.pc a[href$=”.exe”] { STLYE }
这就是您要实现的目标吗?
谢谢,这确实为我节省了几个小时。
有人可以建议如何使用纯 JavaScript 来完成,而不是 jQuery 吗?
您可以使用
document.body.classList += <classname>;
或document.body.setAttribute("class", <classname>);
代替$("body").addClass(<classname>);
。在 JavaScript 中,其他所有内容与 jQuery 中相同。虽然用户代理可能会被欺骗或本身就模棱两可,但
navigator.platform
返回的是实际的平台,并且在用户代理被欺骗时不会被欺骗。因此,我喜欢测试navigator.platform
是否为MacPPC
或MacIntel
(尽管我认为现在没有人再使用 PPC Mac 了)。我正要评论这个 - navigator.platform 是最好的方法。
我们可以用它来检测 Linux 吗?如果可以,它会检测所有 Linux 版本,还是只检测特定发行版,比如 Fedora 和 Ubuntu?
使用 JS 执行的纯示例
http://codepen.io/anon/pen/reLWoQ