因此,我试图在用户使用 Mac 时将“关闭”按钮移至左侧,而当用户使用 PC 时将其移至右侧。现在我通过检查用户代理来做到这一点,但是对于可靠的操作系统检测来说,它很容易被欺骗。有没有一种可靠的方法来检测运行浏览器的操作系统是 Mac OS X 还是 Windows?如果不是,有什么比用户代理嗅探更好的呢?
原文由 alt 发布,翻译遵循 CC BY-SA 4.0 许可协议
因此,我试图在用户使用 Mac 时将“关闭”按钮移至左侧,而当用户使用 PC 时将其移至右侧。现在我通过检查用户代理来做到这一点,但是对于可靠的操作系统检测来说,它很容易被欺骗。有没有一种可靠的方法来检测运行浏览器的操作系统是 Mac OS X 还是 Windows?如果不是,有什么比用户代理嗅探更好的呢?
原文由 alt 发布,翻译遵循 CC BY-SA 4.0 许可协议
就这么简单:
function isMacintosh() {
return navigator.platform.indexOf('Mac') > -1
}
function isWindows() {
return navigator.platform.indexOf('Win') > -1
}
原文由 Benny Neugebauer 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读
当更改 userAgent 字符串时, window.navigator.platform 属性不会被欺骗。如果我将 userAgent 更改为 iPhone 或 Chrome Windows,我在我的 Mac 上进行了测试, navigator.platform 仍然是 MacIntel。
该属性也是 只读的
我可以想出下表
现代 macs 返回
navigator.platform == "MacIntel"
但为了提供一些“未来证明”,不要使用精确匹配,希望它们会在 future.d 中更改为MacARM
或MacQuantum
包括也使用“左侧”的 iOS
由于大多数操作系统使用右侧的关闭按钮,因此当用户使用 MacLike 操作系统时,您只需将关闭按钮移到左侧即可,否则,如果将其放在最常见的一侧,即右侧,则没有问题。
http://www.nczonline.net/blog/2007/12/17/don-t-forget-navigator-platform/