【问题标题】:How to detect IE11 and redirect it to other site如何检测 IE11 并将其重定向到其他站点
【发布时间】:2014-08-07 22:12:58
【问题描述】:

我必须将 IE 用户重定向到其他网站,从 IE6 到 IE9,这段代码运行良好:

 <!--[if IE]><script type="text/javascript">window.location = "google.com";</script><![endif]-->

这段代码非常适合 IE 10:

 <script type="text/javascript">if (navigator.appName == 'Microsoft Internet Explorer'){self.location = "google.com"}</script>

但我找不到任何适用于 IE11 的解决方案 - 在此浏览器中,我的网站不会重定向。

也许您知道如何只编写一个脚本将所有 IE 浏览器重定向到其他网站?

【问题讨论】:

  • 出于好奇,为什么需要重定向 IE11 用户?它越来越符合标准(我不是说 100%)。所以我个人不明白为什么你需要为这些用户强制重定向。
  • ie 11 不再识别为 Ms Internet Explorer 了。请参阅此处stackoverflow.com/questions/17907445/how-to-detect-ie11
  • @ferrari fan .. activex 可能:)
  • 我知道,但我只为 html5 中的 VP9 视频制作了一个预加载器,并且我清理了更多代码以进行良好的优化。 :) 我无法预加载 h264 文件,所有用户 IE 和 Safari 都重定向到 h264 特殊文件夹,亲爱的用户 IE 玩得很开心。 ;-) 我记得在 Firefox 浏览器中的 h264 优化有问题我使用标准 vp8 + 添加源 h264 .mp4 但 FF 总是使用 .mp4 有时视频它的滞后和阻塞;)
  • 试试这个:github.com/ded/bowser 并使用 &lt;script&gt;if (bowser.msie) { ... }&lt;/script&gt; 在我的经验中非常可靠。

标签: javascript jquery html internet-explorer redirect


【解决方案1】:

将回应法拉利粉丝的观点...您将 IE 用户放在不同网站上的许多旧理由已不再有效。

无论如何,根据我的经验,随着 IE11 的最新变化,更可靠的浏览器嗅探方法是检查 navigator.userAgent 中的“Trident”版本,而不是 IE 版本。我的是:

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR
3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko

这里列为 7.0,它与 IE11 一起首发。 6 或更低版本将是其他版本。请记住,IE 的发布周期可能会像其他浏览器一样更快,因此您的网站可能很快就会处理“Trident/10.0”(IE 14) - 请确保您的模式匹配考虑到这一点。

【讨论】:

    【解决方案2】:

    请不要这样做。

    众所周知,浏览器检测非常不可靠,而且根本无法证明未来。
    正如您首先遇到此问题所证明的那样。

    相反,检测浏览器功能并根据这些功能提供您需要的功能。

    查看这些资源:


    如果您必须这样做,那么您可以使用以下任何一种方法:

    例如:

    if (!!navigator.userAgent.match(/Trident.*rv\:11\./)) {self.location = "google.com"}
    

    【讨论】:

    • 特征检测是一个非常理想的选择,但考虑到我自己在尖端视频相关技术方面的一些工作,它还不能完全适用于所有事情。如果用户体验很关键,那么开发人员确实需要编写诸如“这是 Chrome,唯一一个它认为它支持的特定功能的行为略有不同的浏览器吗?”之类的东西。尽管所有浏览器都支持所有编解码器,但 OP 的一位 cmets 说明了他遇到的 HTML5 视频问题。
    【解决方案3】:

    按照您的 cmets,浏览器检测不是要走的路。

    改为使用特征检测。在这种情况下:

    var test = document.createElement('video');
    if( !test.canPlayType) { /* HTML5 video not supported at all */ }
    else if( !test.canPlayType("video/whatever")) {
        // replace "whatever" with the correct MIME type
        // if that type is not supported, do something here
    }
    else { /* you're all good? */ }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-15
      • 2017-03-22
      • 1970-01-01
      • 2011-05-24
      • 2018-08-05
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      相关资源
      最近更新 更多