在 JavaScript 中检测操作系统

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

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

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

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

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

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

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

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

代码片段:

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

输出:

在 JavaScript 中检测操作系统

如你所见,我们确实收到了平台的名称,但实际版本是运行代码的 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);

输出:

在 JavaScript 中检测操作系统

使用 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);

输出:

在 JavaScript 中检测操作系统