截至今天,navigator.platform的可能值列表是什么?
我知道这种更改经常发生,但是是否有一个列表尽可能详尽地列出了所返回的值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美分。
回答:
以下是我所知道的值的(绝对不确定)列表,可以使用多个来源进行验证。由于定义不明确,我不太确定订购这些产品的最佳方法是什么。目前,我根据操作系统或设备品牌将它们分为几类,并列出了其他信息和适用的发布日期。
真的很难测试Android设备。Android设备返回的Android
频率与Linux版本相同。例如,在Nexus5手机上,Android浏览器和Chrome都会返回Linuxarmv7l
。在极少数情况下,Android设备甚至可以返回null
(而不是undefined
)。
Android
(2008年)Linux
:请参阅上面的注释null
就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
(2003年)
FreeBSD
FreeBSD i386
:x86(IA-32)处理器FreeBSD amd64
:AMD x86-64处理器
严重不可靠,因为在此基础上构建了许多平台。例如,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 SystemLinux MSM8960_v3.2.1.1_N_R069_Rev:18
:索尼Xperia VLinux 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
在FirefoxOS上的网络浏览器中返回一个空字符串。
KaiOS(基于Firefox)上的Web浏览器还返回空字符串(与FirefoxOS相同)。
New Nintendo 3DS
(2014年)Nintendo DSi
(2008年)Nintendo 3DS
(2011年)Nintendo Wii
(2006年)Nintendo WiiU
(2012年)
OpenBSD amd64
Nokia_Series_40
(1999†)S60
(2002†)Symbian
:Symbian上的OperaSymbian OS
PalmOS
(1996)webOS
(2009年)
SunOS
SunOS i86pc
SunOS sun4u
:SPARC处理器
PLAYSTATION 3
(2006年)PlayStation 4
(2013年)PSP
:PlayStation Portable(2004)
HP-UX
:Hewlett-Packard UniXmasking-agent
:使用适用于Firefox的Masking Agent时,值更改为此WebTV OS
X11
:X11窗口系统
是否有不在此列表中的设备?请留下评论,列出您设备的属性及其navigator.platform
值随意使用此JSFiddle查找值。
希望这可以帮助。
以上是 截至今天,navigator.platform的可能值列表是什么? 的全部内容, 来源链接: utcz.com/qa/432356.html