在 JavaScript 中检测操作系统

Anika Tabassum Era 2024年2月15日
  1. 使用 JavaScript 中的 platform 属性检测操作系统
  2. 使用 JavaScript 中的 userAgent 属性检测操作系统
  3. 使用 JavaScript 中的 appVersion 属性检测操作系统
在 JavaScript 中检测操作系统

在 JavaScript 中,navigator 对象返回浏览器信息。从技术上讲,通过导航器属性,我们向服务器发送有关浏览器的信息,有时还会发送有关我们正在使用的应用程序或操作系统的信息。

结果,服务器返回一个字符串,其中包含有关先前接收到 ping 的浏览器的信息。

在这里,我们将在更多实例中看到 platform 属性与 navigator 对象的使用。我们还将看到 navigator.userAgentnavigator.appVersion 是如何工作的。

使用 JavaScript 中的 platform 属性检测操作系统

platform 属性是一个几乎被遗忘的功能。大多数浏览器不会收到浏览器平台的确切详细信息。

通常,此属性的基本功能是检测浏览器运行所在的平台。

使用此属性时,我们将获得正确的操作系统名称,但主要问题是某些浏览器,例如 Chrome、Firefox 63、Edge,即使实际版本为 64,也会将版本返回为 32。所以,即使这是最简单的方法找出操作系统,但忽略了这个熵。

以下代码行将解释这种情况。

代码片段:

var OS = navigator.platform;
console.log(OS);

输出:

使用平台属性检测操作系统

如你所见,我们确实收到了平台的名称,但实际版本是运行代码的 PC 的 64 位。我们使用的浏览器是 Chrome,返回的版本信息是 32。

使用 JavaScript 中的 userAgent 属性检测操作系统

如果我们想跟踪有关用户使用的浏览器和平台的一些细节,我们可以使用 navigator 对象获取 userAgent 属性。此特殊功能返回一个包含浏览器名称、版本和平台名称的字符串。

与之前的属性(platform)不同,userAgent 给出了明确的结果,包括版本。

在下面的示例中,我们将尝试匹配字符串中的模式并将其推断为正确的操作系统。

代码片段:

var OS = 'Unknown';
if (navigator.userAgent.indexOf('Win') != -1) OS = 'Windows';
if (navigator.userAgent.indexOf('Mac') != -1) OS = 'MacOS';
if (navigator.userAgent.indexOf('X11') != -1) OS = 'UNIX';
if (navigator.userAgent.indexOf('Linux') != -1) OS = 'Linux';
console.log(OS);
console.log(navigator.userAgent);

输出:

使用 userAgent 属性检测操作系统

使用 JavaScript 中的 appVersion 属性检测操作系统

对于 appVersion 属性,我们还检索有关浏览器及其平台的信息。还建议通过 JavaScript 了解你 PC 的操作系统。

然而,它的用途很小。你可以先看看这个文章了解更多信息。

此外,此功能是只读属性。

代码片段:

var OS = 'Unknown';
if (navigator.appVersion.indexOf('Win') != -1) OS = 'Windows';
if (navigator.appVersion.indexOf('Mac') != -1) OS = 'MacOS';
if (navigator.appVersion.indexOf('X11') != -1) OS = 'UNIX';
if (navigator.appVersion.indexOf('Linux') != -1) OS = 'Linux';
console.log(OS);

输出:

使用 appVersion 属性检测操作系统

Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn Facebook