【问题标题】:How do I determine if the browser is 64-bit or not?如何确定浏览器是否为 64 位?
【发布时间】:2013-06-25 10:16:05
【问题描述】:

我有一个我在 2009 年构建的 Silverlight 应用程序。不幸的是,Silverlight 不适用于 64 位浏览器。而且 64 位浏览器的使用量刚刚开始增长,尤其是随着 Windows 8 的发布。所以我想检测 64 位浏览器并提供一条用户友好的消息,说明应用程序无法加载的原因。

我可以用一点 Javascript 来实现这一点,但用户代理等似乎无处不在。我已经尝试过navigator.cpuClass,这似乎可以在 Internet Explorer 中完成我想要的操作。它在 32 位版本的 IE10 上返回 x86。但它在 Chrome 和 Firefox 中返回 undefined。因此,我正在寻找适用于所有浏览器的可靠解决方案。

请注意,我不在乎操作系统是否为 64 位。那没关系。我只关心浏览器。

【问题讨论】:

  • 不检测操作系统/浏览器,为什么不检测实际的silverlight插件是否存在?类似stackoverflow.com/questions/119980/…
  • 你想如何处理这种情况:Silverlight 没有安装但是浏览器是 32 位的?
  • 请重新打开。标记为重复的问题不是重复的。
  • @SteveWortham 检查上述问题的answer。看起来window.navigator.platform 反映了浏览器是否以32 或64 位运行,所以这个问题(即使不是重复的)可能仍然有帮助。
  • 嗯,Silverlight 5 在 64 位浏览器上运行良好! IE 9:i.imgur.com/fccYxu1.png 和 Pale Moon(64 位 Firefox):i.imgur.com/9jOGaIK.png 这是在 Windows 7 SP1 上。我认为它适用于 Windows 8,但我可能是错的。

标签: javascript silverlight browser


【解决方案1】:

感谢@RocketHazmat,我发现了64-bit browser support was introduced with Silverlight 5。我的应用使用的是 Silverlight 4。所以我升级到 5,现在它可以在我测试过的 64 位浏览器上运行。

但是,仍然有一个例外。即使 Silverlight 5 也无法在 Windows 8 下的 Metro 版本的 IE10 中运行。显然这是by design,因为这是针对触控优化的 IE10 专用版本。不过,这仍然无法为我解释。我认为它很蹩脚。

当然,这意味着 64 位浏览器检测不再是一个真正的问题。微软只需要为这个浏览器添加 Silverlight 支持,我就很高兴了。

更新

我在 Win8 中发现了一个与 Metro/现代 IE10 相关的有趣花絮。您可以指示浏览器在require the "desktop" version of IE 的页面上有插件。

您只需将此元标记添加到您的 HTML...

<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true" />

这会生成这个提示...

【讨论】:

    猜你喜欢
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2013-09-22
    • 2014-01-28
    • 2018-11-04
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多