与X-UA兼容的元标记和浏览器重定向的问题

时间:2013-12-12 08:27:45

标签: internet-explorer redirect conditional

我目前正在开发一个新的网络项目,并且在为Internet Explorer进行优化时遇到了一些问题(嗯,谁会这么想?)...... 我想支持IE8 +但是将IE 7及更早版本重定向到另一个页面,建议下载另一个浏览器。对于IE8,我想显示一条消息,推荐另一个浏览器,但不重定向它。在IE 9+中,一切都很好。 我遇到的第一个问题是,IE10总是在兼容模式下呈现页面,使用IE7标准并使页面看起来很糟糕。所以我介绍了这样的X-UA兼容元标记:

<meta http-equiv="X-UA-Compatible" content="IE=10,IE=9,IE=8" />

然后我尝试使用

实现IE7及以下的重定向
<!--[if lte IE 7]> 
        <script type="text/javascript"> 
            document.location.href = "outdated.html"; 
        </script> 
<![endif]-->

使用F12在不同模式下在IE11中测试页面不会进行重定向并在IE7及更低版本中显示页面蹩脚,所以我假设X-UA兼容的元标记打破了条件注释。尽管如此,如果没有标签,所有低于IE10的IE版本都会被重定向,即使条件评论说“lte IE 7”......

我似乎无法自己解决这个问题,所以任何帮助都将不胜感激! :)

干杯,罗布

1 个答案:

答案 0 :(得分:0)

如果网站是从localhost或Intranet提供的,则默认情况下使用兼容模式。

您可以阅读更多相关信息here

  

在企业环境中,某些地区的风险较低   兼容性问题。例如,Intranet Zone网站使用   兼容性默认情况下查看。

您不能像使用meta标签那样覆盖它。

相反,您需要发送HTTP标头:

X-UA-Compatible: IE=edge

回答类似问题here

如果您使用的是.NET,则可以使用IIS配置添加此标头或在web.config文件中进行更改:

<httpProtocol>
    <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=Edge" />
    </customHeaders>
</httpProtocol>