在 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);
输出:
如你所见,我们确实收到了平台的名称,但实际版本是运行代码的 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 中的 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);
输出:
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
用 jQuery 检查复选框是否被选中
发布时间:2024/03/24 浏览次数:102 分类:JavaScript
-
在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的
jQuery 中的 Window.onload 与 $(document).ready
发布时间:2024/03/24 浏览次数:180 分类:JavaScript
-
本教程演示了如何在 jQuery 中使用 Window.onload 和 $(document).ready 事件。