【问题标题】:IE 11 browser recognizes itself as Mozilla [duplicate]IE 11浏览器将自己识别为Mozilla [重复]
【发布时间】:2014-01-21 13:36:40
【问题描述】:

我正在开发 MVC 应用程序、.net 4.5 框架、VS 2010。 我有一段 Javascript 代码可以识别应用程序正在运行的浏览器。如果浏览器是 Firefox,则将执行特定的代码块,否则将执行另一个块代码。 使用 IE 11 我遇到了一个奇怪的问题。 浏览器(即 11)将自己识别为 Mozilla。

java脚本代码:

 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");
            }

【问题讨论】:

  • 这是一个很好的例子说明为什么 $.browser 被弃用/删除
  • 问题不应因重复而关闭。 IE 11 有不同的东西,另外一个 Question about detection with JQuery 没有讲到。

标签: javascript jquery asp.net-mvc mozilla internet-explorer-11


【解决方案1】:

这是因为 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

【讨论】:

    【解决方案2】:

    是的,它does

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

    ...

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

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

    【讨论】:

      【解决方案3】:

      看一下 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/

      我认为是这个原因。

      【讨论】:

        【解决方案4】:

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

        尽管如此,所有 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>
        

        【讨论】:

        • 太棒了!一个没有试图告诉我使用特征检测的工作解决方案。特征检测在 IE11 中为 box-shadow 返回正值,但是如果您将 box-shadow 应用于 tbody,它会将阴影放置在表格中的每个单元格周围并且看起来很糟糕,与所有其他 IE 相同,所以这正是我所需要的。跨度>
        • 我对 IE 自 10 年以来所做的事情印象深刻,非常努力。但是如此明显的跛脚开始穿酷俱乐部的颜色并假装是Mozilla?这是一个老派,比尔盖茨微软,不惜一切代价出售,可悲的决定一路走来。多尴尬啊。哦,还有不错的解决方法……但是 MS 开始携带三叉戟要多久?
        猜你喜欢
        • 1970-01-01
        • 2016-07-26
        • 2016-04-20
        • 1970-01-01
        • 1970-01-01
        • 2013-09-26
        • 2018-05-12
        • 2013-09-22
        • 2012-06-21
        相关资源
        最近更新 更多