IE 11浏览器将自己识别为Mozilla

我正在研究MVC应用程序,.net 4.5框架,VS 2010.我有一段Javascript代码,用于标识应用程序正在运行的浏览器。 如果浏览器是Firefox,那么如果不执行另一个块代码,则将执行特定的代码块。 使用IE 11,我遇到了一个奇怪的问题。 浏览器(即11)将自己视为Mozilla。

javascrip代码:

if ($.browser.mozilla) { if (location.pathname == "/Stats/Reports") { // This is for local env. $("#prntCss").attr("href", "../../../Content/SitePrint_FF.css"); } else { $("#prntCss").attr("href", "../../Content/SitePrint_FF.css"); $("#rptPrntCss").attr("href", "../../Content/reportPrintStyles_FF.css"); } 

在此处输入图像描述

是。 IE 11不再说是IE了,它说它是Mozilla。

Althoug,所有IE版本都在其所有版本中响应Trident (其布局引擎)这个词。

所以像这样的东西可以在你的javascript中工作

  

是的,它确实 :

兼容(“兼容”)和浏览器(“MSIE”)令牌已被删除。

这些更改有助于防止IE11(错误地)被识别为早期版本。

仍有一些方法可以检测到它(搜索“如何检测ie11”),但最好的办法是删除浏览器检测代码。

这是因为IE 11具有与先前版本的IE不同的用户代理字符串样式

http://msdn.microsoft.com/library/ms537503.aspx

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

看看IE 11的用户代理字符串: http : //msdn.microsoft.com/en-us/library/ie/hh869301(v = vs。85).aspx

现在它说:

Mozilla / 5.0(Windows NT 6.3; Trident / 7.0; rv:11.0)就像Gecko一样

更多细节: http : //www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/

我认为这就是原因。