从JavaScript获取IE 11版本号

8

TL;DR - 如何在JavaScript中获取IE 11的构建号?

我之前有一个错误,在版本11.0.1和11.0.7之间某个时候已经修复了。我想知道有多少用户正在遇到这个问题。

基本上,我想得到这个数字:

enter image description here


2
你可以检查错误而不是获取构建号。 - Hacketo
4
这个漏洞会导致IE崩溃。所以检查它有点棘手 :) - Ofir D
setTimeout(function() { console.log("你很好,这里没有错误!") }, 5000); causeBugToPotentiallyHappen(); - 不会有错误吧? :) - James Thorpe
这个问题以前已经被问过了,据我所知,没有办法纯粹通过JS来识别IE浏览器的版本和子版本号。你可以尝试读取注册表设置,但我不知道在IE11中是否可能实现。 - blgt
感谢您的建议,@JamesThorpe,这是一个很聪明的技巧 :) - Ofir D
1个回答

2
我认为仅使用JavaScript是不可能的。微软试图隐藏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。 - Ofir D

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