当前位置: 首页 > 面试题库 >

截至今天,navigator.platform的可能值列表是什么?

顾穆冉
2023-03-14
问题内容

我知道这种更改经常发生,但是是否有一个列表尽可能详尽地列出了所返回的值navigator.platform

到目前为止的清单:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • WinCE
  • iPhone
  • iPod
  • iPad
  • Android
  • BlackBerry
  • Opera

问题答案:

免责声明: 请注意,此属性是由浏览器发送的,因此可以伪造,就像用户代理字符串一样。切勿完全依赖navigator物体。

定义

据我所知,没有一个公开列出所有可能的navigator.platform值,即使该属性存在了很长时间。更糟的是,这些年来,酒店的定义发生了变化。它曾经是:

navigator.platform 指示为其编译浏览器的机器类型。

这基本上意味着Win16,即使用户使用的是32位或64位Windows计算机,当用户运行针对16位编译的浏览器时,该属性也可以返回。

当然W3Schools列出了旧的定义(我什至不会链接到它们)。W3和MDN同意了不同的定义:

navigator.platform 表示浏览器正在执行的平台。

尽管如此,这个定义还是有点模糊。十年前,“平台”要么是CPU架构,要么是操作系统。近年来,手持设备和媒体设备也可以成为平台。

解释

与网络上的所有内容一样,我们的命运掌握在强大的浏览器供应商手中。在这种情况下,所有主要的浏览器(IE,Safari,Firefox和Chrome)都同意我的64位Windows计算机是Win32平台。这意味着就Windows而言,它们一直遵循旧的定义,因为到目前为止,它们都没有针对64位进行编译。但从好的方面来看:至少他们都同意一次。

在手持设备和媒体设备方面,我们似乎有点运气。正如您在问题中已经提到的那样,即使它们都运行相同的操作系统,iPhone,iPod和iPad各自具有独特的价值。任天堂和索尼的所有设备也都返回了唯一的值。所以直到现在才navigator.platform开始看起来很有趣。

但是随后出现了适用于iPhone的Opera Mini,又把事情搞砸了。实际上,Opera
Mini返回一个代码引擎版本号,这与platform到目前为止我们所遇到的一切完全不同。现在,我们回到了开始的地方,并且开始了解为什么关于此主题的信息很少。

尽管解释各不相同,但我对您没有完整的答案,但我还是觉得应该为研究该navigator.platform物业的其他任何人加2美分。

名单

以下是我所知道的值的(绝对不确定)列表,可以使用多个来源进行验证。由于定义不明确,我不太确定订购这些产品的最佳方法是什么。目前,我根据操作系统或设备品牌将它们分为几类,并列出了其他信息和适用的发布日期。

安卓系统

真的很难html" target="_blank">测试Android设备。Android设备返回的Android频率与Linux版本相同。例如,在Nexus5手机上,Android浏览器和Chrome都会返回Linuxarmv7l。在极少数情况下,Android设备甚至可以返回null(而不是undefined)。

  • Android (2008年)
  • Linux:请参阅上面的注释
  • null

Apple

就iOS而言:Safari,Chrome和Mercury同意,但Opera搞砸了。

  • iPhone (2007年)
  • iPod (2007年)
  • iPad (2010年)
  • iPhone Simulator:Xcode附带的模拟器
  • iPod Simulator:Xcode附带的模拟器
  • iPad Simulator:Xcode附带的模拟器
  • Macintosh
  • MacIntel:英特尔处理器(2005)
  • MacPPC:PowerPC处理器
  • Mac68K:68000处理器
  • Pike v7.6 release 92:任何iPhone上的Opera Mini 5(2009年)
  • Pike v7.8 release 517:任何iPhone上的Opera Mini 7(2012)

BlackBerry

  • BlackBerry (2003年)

FreeBSD

  • FreeBSD
  • FreeBSD i386:x86(IA-32)处理器
  • FreeBSD amd64:AMD x86-64处理器

Linux

严重不可靠,因为在此基础上构建了许多平台。例如,ChromeOS或Linux x86-64上的Chrome都将返回,Linux i686因为这正是它们被编译的目的。

注意LinuxARM列出了体系结构标志,例如,armv5tej将表示具有Thumb支持(’T’),DSP指令集(’E’)和Jazelle支持(’J’)的v5ARM体系结构。

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11:基于X11 Window System
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18:索尼Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11:基于X11 Window System

微软

即使在64位Windows 8上,它们都坚持使用Win32

  • OS/2 (1994†)
  • Pocket PC
  • Windows
  • Win16:Windows 3.1x(1992†)
  • Win32:Windows 95及以上
  • WinCE

Mozilla(Firefox OS)

在FirefoxOS上的网络浏览器中返回一个空字符串。

KaiOS

KaiOS(基于Firefox)上的Web浏览器还返回空字符串(与FirefoxOS相同)。

Nintendo

  • New Nintendo 3DS (2014年)
  • Nintendo DSi (2008年)
  • Nintendo 3DS (2011年)
  • Nintendo Wii (2006年)
  • Nintendo WiiU (2012年)

OpenBSD

  • OpenBSD amd64

Symbian/ S40

  • Nokia_Series_40 (1999†)
  • S60 (2002†)
  • Symbian:Symbian上的Opera
  • Symbian OS

Palm

  • PalmOS (1996)
  • webOS (2009年)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u:SPARC处理器

Sony

  • PLAYSTATION 3 (2006年)
  • PlayStation 4 (2013年)
  • PSP:PlayStation Portable(2004)

各种

  • HP-UX:Hewlett-Packard UniX
  • masking-agent:使用适用于Firefox的Masking Agent时,值更改为此
  • WebTV OS
  • X11:X11窗口系统

是否有不在此列表中的设备?请留下评论,列出您设备的属性及其navigator.platform值随意使用此JSFiddle查找值。

希望这可以帮助。



 类似资料:
  • 问题内容: 如果记录日期时间范围涵盖今天,我想显示记录。(此示例的3和4) 我尝试用两个来做到这一点,它在第二秒给出了语法错误。 我怎样才能做到这一点? 问题答案:

  • 我正在用Spring JPA配置一个数据库,我想知道的可能值是什么。我发现这个页面具有公共属性,但它没有给出所有可能的值。我希望会有一些文档说明您可以设置的所有属性的所有可能值。 我正在使用中props部分中的属性作为的属性

  • 问题内容: 检索的对象。此方法可以返回的所有可能值是什么?我可以使用该值来标识数据库中发生的特定错误吗(即,该值可以告诉我是否是PK违例,唯一约束或列值是否很大等)? 同样,该方法应该指示返回的是X / Open(现在称为Open Group)SQL CLI还是SQL99。唯一可能的价值应该是并且我正在获取价值。我想念什么吗? 有没有一种方法可以使用上述方法的组合来确定数据库中发生的特定错误类型?

  • 问题内容: 我需要找到当天创建的帐户,以及最近7天创建的帐户。 为了找到今天的结果,它可以正常工作,我可以这样做: 但是我不知道如何获得最近的7天帐户。 我尝试了类似的方法,但是没有成功: 你有主意吗? 问题答案: 在mysql中:

  • 问题内容: SQLite的列名是否有任何规则? 可以使用’/’之类的字符吗? 可以是UTF-8吗? 问题答案: 包含完整列表的http://www.sqlite.org/lang_keywords.html!请享用!

  • 获取今天的日期(年、月、日) 用法 Your browser does not support the video tag. 案例:小闹钟 功能:2019年12月25日,播放圣诞快乐歌