IE8 javascript被检测为IE7

时间:2013-06-03 14:20:00

标签: javascript internet-explorer

我尝试检测ie 7或6并使用javascript bellow

将用户重定向到错误页面
 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将用户重定向到错误页面 就像他们在7或6上一样。

知道可能出现什么问题?

1 个答案:

答案 0 :(得分:2)

我假设你有这个解决方案from here

如果您仔细阅读了您正在使用的大量代码的评论(在上面的链接中),您会看到其他人遇到了您遇到的相同问题。

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

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

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

要了解问题的根源,请抓住IE8的副本并亲自试用(您可以使用BrowserStack - 一个非常好的浏览器内资源进行跨浏览器测试),如果您可以使用IE8复制它,确保您在工具菜单中没有处于IE7模式。

查看页面上的HTML标记,确保您没有X-UA-Compatible元标记在头部看起来像这样:

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

可以改为:

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