javascript - 如何在 JavaScript 中检测 macOS Big Sur 和/或 Monterey?

标签 javascript macos macos-monterey

我正在运行带有 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/

相关文章:

javascript - 替换多行中字符串的所有实例

Javascript计算器显示没有小数点的结果

Python ctypes 不在 Mac OS X 上加载动态库

mysql - Excel VBA 查询表参数因空值而失败

javascript - angularjs 服务不是函数

javascript - jquery .val() 返回未定义

macos - 按住 Control 键单击不会更改 IKImageBrowserView 中的选择,右键单击或两指单击会更改

ruby-on-rails-3 - 使用 Rails 更新到 Ruby 3.0.x : symbol not found in flat namespace '_RHASH_EMPTY_P'

java - 我在 Mac 上创建 JLabel 时出现有关错误字体的错误日志

android-sdk-manager - Android sdk 管理器无法在 visual studio 2022 for mac monterey 中工作