1

我试图检测 ie 7 或 6 并使用下面的 javascript 将用户重定向到错误页面

 var Browser = {
        Version: function () {
            var version = 999; // we assume a sane browser
            if (navigator.appVersion.indexOf("MSIE") != -1)
            // bah, IE again, lets downgrade version number
                version = parseFloat(navigator.appVersion.split("MSIE")[1]);
            return version;
        }
    }

    if (Browser.Version() == 7 || Browser.Version() == 6) {

        if (window.location.href != "/browser_problem") {
            window.location.href = "/browser_problem";
        }
    }

我得到了一些反馈,即版本 8.0.7601.17514 将用户重定向到错误页面,就像他们在 ie 7 或 6 上一样。

知道可能是什么问题吗?

4

1 回答 1

2

我假设您从这里得到了这个解决方案?

如果您仔细阅读您正在使用的代码块的注释(在上面的链接上),您会看到其他人遇到了与您相同的问题。

代码本身是合理的(尽管您会发现一些人不认为以这种方式嗅探浏览器是一种好的做法)。

Internet Explorer 8 被捕获和重定向的原因是:

  • 用户的浏览器处于 IE7 兼容模式(可以从“工具”菜单或 URL 栏中的小浏览器图标中找到 - IE8 旨在智能地检测并自动切换到 IE7 模式。这通常是由无效引起的标记);
  • 该网站本身正在强制他们的浏览器使用X-UA-Compatible或类似的方式进入 IE7 模式。

如果您可以使用 IE8 复制它,请获取 IE8 的副本并自己尝试一下(您可以使用BrowserStack - 一个非常好的用于跨浏览器测试的浏览器内资源),以了解问题的根源,确保您不在工具菜单中的 IE7 模式下。

查看页面上的 HTML 标记,确保X-UA-Compatible头部没有类似这样的元标记:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

可以更改为:

<meta http-equiv="X-UA-Compatible" content="IE=edge">
于 2013-06-03T14:28:49.113 回答