【问题标题】:Get IE 11 build number from javascript从 javascript 获取 IE 11 内部版本号
【发布时间】:2023-12-21 05:56:01
【问题描述】:

TL;DR - 如何在 javascript 中获取 IE 11 的内部版本号?

我在 11.0.1 和 11.0.7 版本之间的某个时间点修复了一个错误。我想知道遇到此问题的用户百分比。

基本上我想得到这个号码:

【问题讨论】:

  • 您可以检查错误,而不是获取内部版本号。
  • 这个bug导致IE崩溃..所以检查起来有点问题:)
  • setTimeout(function() { console.log("you're fine, no bug here!") }, 5000); causeBugToPotentiallyHappen(); - 不是吗? :)
  • This has been asked before,而且 afaik 没有办法纯粹通过 JS 来做到这一点。你可以试试reading the registry settings,但我不知道IE11是否可以这样做
  • 感谢@JamesThorpe 的建议,这是一个可爱的 hack :)

标签: javascript internet-explorer internet-explorer-11 user-agent


【解决方案1】:

我认为仅使用 JavaScript 是不可能的。 Microsoft 试图隐藏 IE11 实际上是 Internet Explorer 的事实,请参阅http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/

因此,即使是 IE11 的用户代理现在也看起来像这样:

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; InfoPath.3; rv:11.0) like Gecko 

更新版本存储在 Windows 注册表中,您可以在下面找到它

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\svcUpdateVersion

但是,不可能(没错!)通过 JavaScript 访问 Windows 注册表。 VBScript 在技术上能够访问注册表,但导致早期版本的 IE 显示警告对话框(“活动内容被阻止”)。在 IE11 中,Microsoft 已完全移除对 VBScript 的支持,请参阅 https://msdn.microsoft.com/en-us/library/dn384057%28v=vs.85%29.aspx

我会尝试找到一种不同的方法来解决您的问题,而不是依赖更新版本。但是,如果您感到绝望,将 .NET 版本(在用户代理中可用)与相应的 IE 版本进行比较可能会有所帮助,但我个人认为不值得为此付出努力。

【讨论】:

  • 嗯,真可惜.. 我标记为正确答案。谢谢@pfolta