如何在 JavaScript 中检测 macOS Big Sur and/or Monterey?
How to Detect macOS Big Sur and/or Monterey in JavaScript?
我 运行宁 macOS Monterey (12.2) 与 Safari 15.3。我正在尝试在 Safari(或 Chrome)中使用 JavaScript 以编程方式 确定安装的 macOS 版本。
当我运行以下命令时:
var nAgt = navigator.userAgent;
我得到以下结果:
野生动物园
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
Google Chrome
Mozilla/5.0(Macintosh;英特尔 Mac OS X10_15_7)
AppleWebKit/537.36(KHTML,如 Gecko)Chrome/96.0.4664.110
Safari/537.36
为什么我会看到 10_15_7?我不应该在某处看到 12_2 吗?
感谢@Quentin ...如果我理解正确的话,似乎无法再通过 UserAgent 获得更新的 macOS 系统的准确报告。
似乎世界上很多人都简单地假设它将永远 macOS 10.xx
因此许多网站无法处理 macOS 11.xx
或 macOS 12.xx
响应。
似乎还希望隐藏 OS 的潜在细节,以防止那些可能将其用于恶意“指纹识别目的”的人.
用户代理字符串在 Mac OS 和 Windows (11) 的未来版本中不再可靠。您应该查看 javascript 的客户端提示 API。上下文和未来解决方案的一些参考:
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 并不适用于所有浏览器。因此,在世界赶上之前,检测新的 OSes 是最大的努力。
我 运行宁 macOS Monterey (12.2) 与 Safari 15.3。我正在尝试在 Safari(或 Chrome)中使用 JavaScript 以编程方式 确定安装的 macOS 版本。
当我运行以下命令时:
var nAgt = navigator.userAgent;
我得到以下结果:
野生动物园
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
Google Chrome
Mozilla/5.0(Macintosh;英特尔 Mac OS X10_15_7) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/96.0.4664.110 Safari/537.36
为什么我会看到 10_15_7?我不应该在某处看到 12_2 吗?
感谢@Quentin ...如果我理解正确的话,似乎无法再通过 UserAgent 获得更新的 macOS 系统的准确报告。
似乎世界上很多人都简单地假设它将永远
macOS 10.xx
因此许多网站无法处理macOS 11.xx
或macOS 12.xx
响应。似乎还希望隐藏 OS 的潜在细节,以防止那些可能将其用于恶意“指纹识别目的”的人.
用户代理字符串在 Mac OS 和 Windows (11) 的未来版本中不再可靠。您应该查看 javascript 的客户端提示 API。上下文和未来解决方案的一些参考:
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 并不适用于所有浏览器。因此,在世界赶上之前,检测新的 OSes 是最大的努力。