检测Chrome浏览器是否安装了64位版本

13

我正在尝试执行一个仅在Chrome 64位版本浏览器上运行的脚本。有没有一种使用JavaScript检查用户机器上安装的Chrome版本是64位还是32位的方法?这应该是特定于浏览器的,因为例如我运行着一个64位操作系统和一个32位版本的Chrome。

目前我已经成功检测出打开的浏览器是否为Chrome以及它的版本,使用了Bowser。但我仍然在努力寻找检测64位浏览器的方法。


5
为什么你需要特别检测64位Chrome?你确定你的问题不能通过功能检测来解决吗? - Sam Hanley
@sphanley - NPAPI支持(Shockwave所需的插件)已从64位Chrome中删除,并在32位Chrome中禁用。因此,如果我们知道有人使用32位Chrome,我们可以说“您可以通过以下方式启用Shockwave...”,如果我们知道他们正在使用64位Chrome,我们可以说“您不能再在Chrome中使用Shockwave了-请使用其他浏览器”。这将持续到9月份,届时它也将从32位Chrome中删除。我们正在转换资源以成为非Shockwave,但在此期间我们处于一个困难的过渡期,需要向用户提供最有用的建议。 - Max Williams
而且,似乎没有编程方法可以区分尚未安装Shockwave的用户和已通过NPAPI选项禁用它的用户。 - Max Williams
1
在这种情况下,还有其他相关的问题:https://dev59.com/wF4b5IYBdhLWcg3wtjvY - Sam Hanley
如果在这些情况下你所做的全部只是显示不同的消息,那么你是否考虑过只显示一个组合消息,例如“如果您正在使用32位Chrome,请通过[...]启用,64位不支持”?任何既懂技术又愿意折腾浏览器设置以使用过时Web应用程序的用户都可以自己检查Chrome版本。 - Sam Hanley
显示剩余3条评论
3个回答

6
需要翻译的内容如下:

有关这个问题的广泛讨论,请参见

归根结底,您要查找的属性是navigator.platform,它返回的是浏览器的平台,而不是操作系统。

您还可以看一下platform.js,这是一个平台检测库。

编辑

在进一步调查后发现,虽然 navigator.platform 应该反映浏览器平台,但实际返回的值并不总是有用的。

例如,在 Windows 上,32 位和 64 位版本都返回“Win32”。在这种情况下,用户代理字符串具有更好的值,其中 32 位浏览器为 WOW64,64 位为 x64。

最终,似乎更好的解决方案是依赖于链接问题中的规范列表,或使用像 platform.js 这样的库。


navigator.platform是关于操作系统的,不是Chrome版本,对吧?我看了platform.js,它只是拆分了userAgent字符串。真正让人烦恼的问题是,如果你去“关于”页面,它会显示版本号,然后是“(64位)”字样,如果是64位版本的Chrome。但这个额外的括号部分没有添加到userAgent字符串中。 - Max Williams
WOW64实际上是非常有价值的信息 - 如果你看到它,你就知道操作系统是64位的,而Chrome是32位的。我最终做的是说:“如果我们能看到WOW64,那么它就是32位的Chrome。否则,1)它是Windows吗?如果是Windows,我们能在操作系统部分看到64吗?如果是,那么它就是64位的Chrome。如果不是,那么它就是32位的Chrome。2)它是Mac吗?在Mac上并不容易判断...” - Max Williams
我将悬赏给这个答案,因为它指向了关键的 WOW64。我需要稍微重构一下我的代码,然后我会发布自己的答案,包括我的 JS 函数。 - Max Williams

0

根据我的发现,你应该尝试查找以下字符串

  • x86_64
  • x86-64
  • Win64
  • x64;(注意分号!没有它会有误报。)
  • amd64
  • AMD64
  • WOW64
  • x64_64

1
你确定这不是指平台(即操作系统)是否为64位吗? - Max Williams
对我来说,升级后出现了“x64”,Win64已经存在。 - dandavis
WOW64 是 Windows 上的 32 位模式。 - Sarah Elan

-1

navigator.userAgent 包含 "WOW64" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36"


请参见上面提问者的评论 - Sarah Elan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接