我知道这种更改经常发生,但是是否有一个列表尽可能详尽地列出了所返回的值navigator.platform?
navigator.platform
到目前为止的清单:
免责声明: 请注意,此属性是由浏览器发送的,因此可以伪造,就像用户代理字符串一样。切勿完全依赖navigator物体。
navigator
据我所知,没有一个公开列出所有可能的navigator.platform值,即使该属性存在了很长时间。更糟的是,这些年来,酒店的定义发生了变化。它曾经是:
navigator.platform 指示为其编译浏览器的机器类型。
这基本上意味着Win16,即使用户使用的是32位或64位Windows计算机,当用户运行针对16位编译的浏览器时,该属性也可以返回。
Win16
当然W3Schools列出了旧的定义(我什至不会链接到它们)。W3和MDN同意了不同的定义:
navigator.platform 表示浏览器正在执行的平台。
尽管如此,这个定义还是有点模糊。十年前,“平台”要么是CPU架构,要么是操作系统。近年来,手持设备和媒体设备也可以成为平台。
与网络上的所有内容一样,我们的命运掌握在强大的浏览器供应商手中。在这种情况下,所有主要的浏览器(IE,Safari,Firefox和Chrome)都同意我的64位Windows计算机是Win32平台。这意味着就Windows而言,它们一直遵循旧的定义,因为到目前为止,它们都没有针对64位进行编译。但从好的方面来看:至少他们都同意一次。
Win32
在手持设备和媒体设备方面,我们似乎有点运气。正如您在问题中已经提到的那样,即使它们都运行相同的操作系统,iPhone,iPod和iPad各自具有独特的价值。任天堂和索尼的所有设备也都返回了唯一的值。所以直到现在才navigator.platform开始看起来很有趣。
但是随后出现了适用于iPhone的Opera Mini,又把事情搞砸了。实际上,Opera Mini返回一个代码引擎版本号,这与platform到目前为止我们所遇到的一切完全不同。现在,我们回到了开始的地方,并且开始了解为什么关于此主题的信息很少。
platform
尽管解释各不相同,但我对您没有完整的答案,但我还是觉得应该为研究该navigator.platform物业的其他任何人加2美分。
以下是我所知道的值的(绝对不确定)列表,可以使用多个来源进行验证。由于定义不明确,我不太确定订购这些产品的最佳方法是什么。目前,我根据操作系统或设备品牌将它们分为几类,并列出了其他信息和适用的发布日期。
安卓系统
真的很难测试Android设备。Android设备返回的Android频率与Linux版本相同。例如,在Nexus5手机上,Android浏览器和Chrome都会返回Linuxarmv7l。在极少数情况下,Android设备甚至可以返回null(而不是undefined)。
Android
Linuxarmv7l
null
undefined
Linux
Apple
就iOS而言:Safari,Chrome和Mercury同意,但Opera搞砸了。
iPhone
iPod
iPad
iPhone Simulator
iPod Simulator
iPad Simulator
Macintosh
MacIntel
MacPPC
Mac68K
Pike v7.6 release 92
Pike v7.8 release 517
BlackBerry
FreeBSD
FreeBSD i386
FreeBSD amd64
严重不可靠,因为在此基础上构建了许多平台。例如,ChromeOS或Linux x86-64上的Chrome都将返回,Linux i686因为这正是它们被编译的目的。
Linux i686
注意LinuxARM列出了体系结构标志,例如,armv5tej将表示具有Thumb支持(’T’),DSP指令集(’E’)和Jazelle支持(’J’)的v5ARM体系结构。
armv5tej
Linux aarch64
Linux armv5tejl
Linux armv6l
Linux armv7l
Linux i686 on x86_64
Linux i686 X11
Linux MSM8960_v3.2.1.1_N_R069_Rev:18
Linux ppc64
Linux x86_64
Linux x86_64 X11
微软
即使在64位Windows 8上,它们都坚持使用Win32。
OS/2
Pocket PC
Windows
WinCE
Mozilla(Firefox OS)
在FirefoxOS上的网络浏览器中返回一个空字符串。
KaiOS
KaiOS(基于Firefox)上的Web浏览器还返回空字符串(与FirefoxOS相同)。
Nintendo
New Nintendo 3DS
Nintendo DSi
Nintendo 3DS
Nintendo Wii
Nintendo WiiU
OpenBSD
OpenBSD amd64
Symbian/ S40
Nokia_Series_40
S60
Symbian
Symbian OS
Palm
PalmOS
webOS
Solaris
SunOS
SunOS i86pc
SunOS sun4u
Sony
PLAYSTATION 3
PlayStation 4
PSP
各种
HP-UX
masking-agent
WebTV OS
X11
是否有不在此列表中的设备?请留下评论,列出您设备的属性及其navigator.platform值随意使用此JSFiddle查找值。
希望这可以帮助。