【问题标题】:Detect if Chrome browser installation is 64-bit检测 Chrome 浏览器安装是否为 64 位
【发布时间】:2015-01-27 02:11:37
【问题描述】:

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

到目前为止,我设法检测到打开的浏览器是否是 Chrome 以及使用 Bowser 的版本。但我仍在为 64 位浏览器检测而苦苦挣扎。

【问题讨论】:

  • 在 UA 字符串中找不到该信息吗?
  • 这是此类字符串的一个示例:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 这里 WOW64 指向 32 -bit 版本,但那是针对 Windows 的,那 iOS 和 Linux 呢?
  • 你有想过这个吗?
  • 为什么需要专门检测 64 位 Chrome?您确定无法通过特征检测来解决您的问题吗?
  • 那么,还有其他相关问题:stackoverflow.com/questions/28766423/…

标签: javascript google-chrome browser 32bit-64bit browser-detection


【解决方案1】:

有关此问题的广泛讨论,请参阅

底线是你要找的属性是navigator.platform,它返回的是浏览器的平台,而不是操作系统。

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

编辑

进一步研究后,似乎navigator.platform 应该反映浏览器平台,但返回的实际值并不总是有用的。

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

最终,更好的解决方案似乎是依赖链接问题中的规范列表,或者使用诸如 platform.js 之类的库。

【讨论】:

  • navigator.platform 与操作系统有关,不是吗,而不是 Chrome 的版本?我查看了 platform.js,它也只是挑选了 userAgent 字符串。真正烦人的问题是,如果您转到“关于”页面,它有版本,然后是“(64 位)”,如果它是 chrome 的 64 位版本。但是这个额外的括号位并没有添加到 userAgent 字符串中。
  • WOW64 实际上是非常有价值的信息 - 如果您看到它,您就知道操作系统是 64 位,Chrome 是 32 位。我最终做的是说“如果我们能看到 WOW64,它是 32 位 chrome。否则 1) 是 Windows它是 32 位 chrome。2) 是 Mac 吗?在 mac 上不太容易分辨..."
  • 我正在为这个答案提供赏金,因为它指向我的 WOW64,这是关键。我需要稍微重构一下我的代码,然后我会发布我自己的答案,包括我的 js 函数。
【解决方案2】:

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

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

【讨论】:

  • 你确定这不是指平台(即操作系统)是否是64位的?
  • 对我来说,升级后出现“x64”,Win64已经存在了。
  • WOW64 是 Windows 上的 32 位模式。
【解决方案3】:

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"

【讨论】:

猜你喜欢
  • 2013-05-17
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 2011-08-04
  • 1970-01-01
相关资源
最近更新 更多