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/
我认为这就是原因。