确定IE的版本

时间:2018-06-20 13:15:27

标签: coldfusion internet-explorer-11

我们正在与Selenium运行一个项目。由于该项目使用Cold Fusion,因此需要IE而不是Chrome。

我有一个已经在该网站上使用IE运行了几个月的测试,并且可以正常运行。我们有一台装有IE的新计算机,并尝试运行它,并收到一条错误消息,指出它需要IE 5或更高版本。哦。

我决定看看这台新机器的版本。桌面上的图标和“关于Internet Explorer”都显示了11.something(11远远高于5),但我们仍然收到此消息。

我怀疑IE的安装不完整或不正确?我想知道是否有人知道我可以访问的网站,该网站会告诉我我认为正在运行的IE版本。或者,如果不太困难,我可以自己写一些东西,如果可以将其作为文件打开。正如我所说,“关于Internet Explorer”认为它是11。我想看看应用程序也认为它是11。尽管他们必须能够弄清楚(或Cold Fusion可以),但我无法真正联系我要问他们的网站的开发人员。

3 个答案:

答案 0 :(得分:8)

  

由于该项目使用Cold Fusion,因此需要IE而不是Chrome。

ColdFusion只是生成HTML和JavaScript,它本身并不关心您使用的是哪种浏览器。但是,呈现的JS是另一回事。如果它是CF的旧版本(<版本10),并且应用程序使用CF的内置UI小部件(例如cfwindowcfpod),则CF正在创建的JavaScript可能正在检查Document Object Model (DOM)中的某些内容,例如浏览器的User Agent String,在MSIE 11中不再存在或已更改。

  

默认情况下,Windows 8.1上的Internet Explorer 11发送以下用户代理字符串:

     

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

更可能的罪魁祸首是:

  

PS:还请注意,在IE11模式下,navigator.appName属性返回Netscape较旧的版本返回了Microsoft Internet Explorer 。新值匹配所有主流浏览器,包括Safari,Chrome和Firefox。

充其量,您也许可以在Compatibility Mode中运行MSIE,以完成Selenium脚本。

在最坏的情况下,您将需要重构CF代码以不再使用这些UI控件,而应将它们替换为jQueryUI之类的现代而简单的东西。

答案 1 :(得分:0)

只需添加:

CGI.HTTP_USER_AGENT

对于您的模板,它将为您提供所需的所有浏览器信息。

然后转到:

https://developers.whatismybrowser.com/useragents/explore/operating_system_name/windows/

并将输出与相关的用户代理字符串引用进行比较...

答案 2 :(得分:0)

要检测IE版本(v6-v7-v8-v9-v10-v11):

if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
   // MSIE
}