使用JS检测MacOS、iOS、Windows、Android和Linux操作系统。

11 浏览
0 Comments

使用JS检测MacOS、iOS、Windows、Android和Linux操作系统。

如何用JavaScript检测MacOS X、iOS、Windows、Android和Linux操作系统?

0
0 Comments

检测操作系统是网页开发中常见的需求之一。通过JavaScript的`window.navigator`对象及其属性,可以获取用户的操作系统信息。虽然无法百分之百确定用户的操作系统,但在大多数情况下,85%到90%的准确率已经足够。下面是一段可以用于检测操作系统的JavaScript代码:

function getOS() {
  var userAgent = window.navigator.userAgent,
      platform = window.navigator?.userAgentData?.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 (/Linux/.test(platform)) {
    os = 'Linux';
  }
  return os;
}
alert(getOS());

这段代码通过判断`platform`和`userAgent`的值来确定操作系统。其中,`platform`是`navigator`对象的属性,而`userAgent`是`navigator`对象的属性之一。根据不同的操作系统,将`os`变量设置为相应的操作系统名称,最后通过`return`语句返回操作系统名称。

这段代码经过了广泛的测试,可以正确地检测出MacOS、iOS、Android、Windows和Linux等操作系统。不过,不能保证百分之百的准确性。

在代码的灵感来源中,提供了一些相关的链接,包括可以查看可能的`navigator.platform`值的链接以及检测操作系统的最佳实践。此外,还提供了用于测试代码的移动和桌面浏览器列表的链接。

对于一些评论中提到的问题和建议,可以根据需求进行适当的修改和调整,以提高代码的准确性和可用性。例如,将`macosPlatforms`数组中添加`"darwin"`,以支持较新的Mac操作系统;在判断Chrome OS时,使用`userAgent`代替`platform`;将一些逻辑表达式改写为更简洁的形式,如使用`includes()`代替`indexOf()`,使用字符串匹配代替具体的数值判断等。

总体而言,这段代码提供了一种简单可行的方式来检测用户的操作系统,对于大多数情况下的应用已经足够。但需要注意的是,由于不同浏览器和操作系统的差异,无法保证百分之百的准确性。

0