如何使用JavaScript找到操作系统名称和操作系统版本?


当前回答

我正在使用这个:)

getPlatform() {
    const allPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE', 'Android', 'iPhone', 'iPad', 'iPod'];
    return allPlatforms.find(item => item === navigator.platform);
}

其他回答

如果您正在使用Electron创建网站或创建桌面应用程序,您可能需要获取客户端使用的操作系统的信息。在这种情况下,你可以使用全局属性window。navigator。 如果您使用console.log(navigator)在控制台中记录属性,您将看到包含浏览器、操作系统等信息的子属性的整个对象。

同样,如果你想创建一个本地NodeJS应用程序也是可以的!只需使用const os = require("os");;调用os模块。然后在控制台中记录常量。你会得到一个完整的对象,但如果你想看到平台的名称,你可以输入console.log(os.platform());,并确保在os后添加一对圆括号。平台作为平台在这里是一个功能!

希望这能有所帮助!

var OSName = "Unknown";
if (window.navigator.userAgent.indexOf("Windows NT 10.0")!= -1) OSName="Windows 10";
if (window.navigator.userAgent.indexOf("Windows NT 6.3") != -1) OSName="Windows 8.1";
if (window.navigator.userAgent.indexOf("Windows NT 6.2") != -1) OSName="Windows 8";
if (window.navigator.userAgent.indexOf("Windows NT 6.1") != -1) OSName="Windows 7";
if (window.navigator.userAgent.indexOf("Windows NT 6.0") != -1) OSName="Windows Vista";
if (window.navigator.userAgent.indexOf("Windows NT 5.1") != -1) OSName="Windows XP";
if (window.navigator.userAgent.indexOf("Windows NT 5.0") != -1) OSName="Windows 2000";
if (window.navigator.userAgent.indexOf("Mac")            != -1) OSName="Mac/iOS";
if (window.navigator.userAgent.indexOf("X11")            != -1) OSName="UNIX";
if (window.navigator.userAgent.indexOf("Linux")          != -1) OSName="Linux";

JavaScript可以访问window.navigator.platform——一个表示浏览器平台的字符串: https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/platform

使用它来提取您需要(并且可以)的任何细节。请注意,并不能保证客户端实际使用了该平台,因为这可以很容易地以多种方式进行修改。

试一试:

console.log (window.navigator.platform);

你可以使用这个javascript函数来检查用户的操作系统

  function getOS() {
  var userAgent = window.navigator.userAgent,
      platform = window.navigator.platform,
      macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],
      windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],
      iosPlatforms = ['iPhone', 'iPad', 'iPod'],
      os = null;

  if (macosPlatforms.indexOf(platform) !== -1) {
    os = 'Mac OS';
  } else if (iosPlatforms.indexOf(platform) !== -1) {
    os = 'iOS';
  } else if (windowsPlatforms.indexOf(platform) !== -1) {
    os = 'Windows';
  } else if (/Android/.test(userAgent)) {
    os = 'Android';
  } else if (!os && /Linux/.test(platform)) {
    os = 'Linux';
  }

  return os;
}

alert(getOS());

User-Agent字符串对于获取平台信息(OS, OS版本,cpu-arch等)不再可靠,因为可以重写它们,甚至浏览器的默认设置也不准确。 在浏览器控制台中尝试"console.log(navigator)"并检查User-Agent字段。

为了解决上述问题,W3有一个新的提议(https://wicg.github.io/ua-client-hints/),它将允许用户请求关于平台的特定信息。截至2021年5月11日,只有基于铬的浏览器(Chrome、Edge、Opera、Brave……)实现了该规范(该提案仍是非正式的)。

获取平台信息的一种方法是服务器通过向初始响应添加'Accept-CH: Sec-CH-UA-Platform-Version'这样的报头来请求特定的信息,来自客户端的任何后续请求都将包含平台信息报头。欲了解更多信息,请参阅上面的链接。

通过Javascript在客户端获取信息,下面的代码可以使用(复制并粘贴在chrome控制台)。

let platformDetails = await navigator.userAgentData.getHighEntropyValues(["architecture", 
"platform", "platformVersion", "model", "bitness", "uaFullVersion"]);
console.log(platformDetails);