我正在研究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");
}
答案 0 :(得分:21)
是。 IE 11不再说它是IE了,它说它是Mozilla。
Althoug,所有IE版本都在其所有版本中回复 Trident (其布局引擎)这个词。
所以这样的东西可以在你的javascript中运行
<script type="text/javascript">
CheckIE();
function CheckIE()
{
var Browser;
Browser = navigator.userAgent;
if (Browser.indexOf("Trident") == -1)
{
//WHATHEVER YOU WANT IF IT IS NOT INTERNET EXPLORER
}
}
</script>
答案 1 :(得分:3)
是的,does:
兼容(“兼容”)和浏览器(“MSIE”)令牌 除去。
...
这些更改有助于防止IE11(错误地) 被确定为早期版本。
仍有一些方法可以检测到它(搜索“如何检测ie11”),但最好的办法是删除浏览器检测代码。
答案 2 :(得分:2)
这是因为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
答案 3 :(得分:2)
看一下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/
我认为这就是原因。