我正在运行带有 Safari 15.3 的 macOS Monterey (12.2)。我正在尝试在 Safari(或 Chrome)中使用 JavaScript 来以编程方式确定安装的 macOS 版本。
当我运行以下命令时:
var nAgt = navigator.userAgent;
我得到以下结果:
Safari
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.3 Safari/605.1.15
谷歌浏览器
Mozilla/5.0(Macintosh;Intel Mac OS X10_15_7) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/96.0.4664.110 Safari /537.36
为什么我看到的是 10_15_7?我不应该在某处看到 12_2 吗?
最佳答案
用户代理字符串在 Mac OS 和 Windows (11) 的 future 版本中不再可靠。您应该查看 javascript 的客户端提示 API。上下文和 future 解决方案的一些引用:
https://www.otsukare.info/2021/02/15/capping-macos-user-agent
https://help.duo.com/s/article/6627?language=en_US
https://web.dev/user-agent-client-hints/
https://browserleaks.com/client-hints
新的 API 并不适用于所有浏览器。因此,在世界 catch 之前,对新操作系统的检测是最大的努力。
关于javascript - 如何在 JavaScript 中检测 macOS Big Sur 和/或 Monterey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70655946/