您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

请注意,此属性是由浏览器发送的,因此可以伪造,就像用户代理字符串一样。切勿完全依赖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)。

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

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

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

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

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

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

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

希望这可以帮助。

其他 2022/1/1 18:24:07 有515人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶