Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测到IE8 javascript为IE7_Javascript_Internet Explorer - Fatal编程技术网

检测到IE8 javascript为IE7

检测到IE8 javascript为IE7,javascript,internet-explorer,Javascript,Internet Explorer,我试图检测IE7或IE6,并使用下面的javascript命令将用户重定向到错误页面 var Browser = { Version: function () { var version = 999; // we assume a sane browser if (navigator.appVersion.indexOf("MSIE") != -1) // bah, IE again, lets downg

我试图检测IE7或IE6,并使用下面的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";
        }
    }
我得到一些反馈,ie版本8.0.7601.17514将用户重定向到错误页面 就像他们在ie 7或6上一样


你知道问题出在哪里吗?

我想你得到了这个解决方案

如果你通读你正在使用的代码块的注释(在上面的链接上),你会发现其他人也有与你相同的问题

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

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

  • 用户的浏览器处于IE7兼容模式(可以从“工具”菜单或URL栏中的小浏览器图标(IE8)智能化,可以自动检测并切换到IE7模式。这通常是由无效标记引起的)
  • 网站本身正在使用
    X-UA-Compatible
    或类似工具将浏览器强制进入IE7模式
要想弄清问题的症结所在,请获取IE8的副本并亲自试用(您可以使用-一个非常好的跨浏览器测试浏览器内资源),如果您可以使用IE8进行复制,请确保您未处于“工具”菜单中的IE7模式

查看页面上的HTML标记,确保头部没有类似以下内容的
X-UA-Compatible
meta标记:

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

可更改为:

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


使用条件注释。无论如何不要使用浏览器检测。使用功能检测检查失败。请检查此项。可能的重复项使用JavaScript程序中的条件注释来确定IE版本。这是可靠的,因为条件评论不能被欺骗。很可能他在一个内部网站上,迫使IE进入兼容模式。你应该使用IE=Edge。如果页面开头没有文档类型声明,那些
meta
s就没有影响。谢谢@Christoph,你完全正确。问题更新为更清晰一点。我习惯于强制ie10像9一样工作,我如何使用IE=Edge?如果你真的需要强制ie10进入IE9模式,那么请使用
IE=9
。但
edge
更可取;如果您认为您需要的不是
edge
,那么它表明您的代码中可能还有其他需要修复的内容,因为在IE10中切换到IE9模式不会修复任何重大错误。