在 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