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

Internet explorer X-UA兼容元标记和浏览器重定向问题,internet-explorer,redirect,conditional,Internet Explorer,Redirect,Conditional,我目前正在做一个新的web项目,在为Internet Explorer优化它时遇到了一些问题,嗯,谁会想到呢。。。 我想支持IE8+,但将IE7和更早版本重定向到另一个页面,建议下载另一个浏览器。对于IE8,我想显示一条消息,推荐另一个浏览器,但不重定向它。在IE 9+中,一切都很好。 我遇到的第一个问题是,IE10总是以兼容模式呈现页面,使用IE7标准,使页面看起来很糟糕。因此,我引入了X-UA兼容元标记,如下所示: <meta http-equiv="X-UA-Compatible"

我目前正在做一个新的web项目,在为Internet Explorer优化它时遇到了一些问题,嗯,谁会想到呢。。。 我想支持IE8+,但将IE7和更早版本重定向到另一个页面,建议下载另一个浏览器。对于IE8,我想显示一条消息,推荐另一个浏览器,但不重定向它。在IE 9+中,一切都很好。 我遇到的第一个问题是,IE10总是以兼容模式呈现页面,使用IE7标准,使页面看起来很糟糕。因此,我引入了X-UA兼容元标记,如下所示:

<meta http-equiv="X-UA-Compatible" content="IE=10,IE=9,IE=8" />
然后,我尝试使用

<!--[if lte IE 7]> 
        <script type="text/javascript"> 
            document.location.href = "outdated.html"; 
        </script> 
<![endif]-->
使用F12在不同模式下测试IE11中的页面不会重定向,并且在IE7和以下版本中显示糟糕的页面,因此我假设X-UA-Compatible元标记会破坏条件注释。尽管如此,如果没有标签,所有低于IE10的IE版本都会被重定向,即使有条件的评论说lte IE 7

我自己似乎无法解决这个问题,因此我们将感谢您的帮助!:


干杯,Rob

如果网站由本地主机或内部网提供服务,IE默认使用兼容模式

你可以阅读更多关于它的内容

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

您不能像这样使用元标记来覆盖它

相反,您需要发送HTTP头:

X-UA-Compatible: IE=edge
类似的问题也得到了回答

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

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

Kaspars,谢谢你的回复!事实上,离线测试是自动使用兼容模式的原因,但我没有意识到这一点。因为它将是一个托管网站,我想我根本不需要覆盖它,是吗?不过,有条件的评论似乎不起作用。。。有什么想法吗?干杯,再次罗比,我刚刚读到IE11完全放弃了对有条件评论的支持,你必须有一个你想要测试的浏览器的实际副本。。。这是真的吗?因为我认为他们在上周工作了,当时我的Windows虚拟机上还有IE10…如果你在互联网上的某个地方托管你的网站,你应该什么都不做就好了。同时,如果您在localhost或intranet上为客户进行演示,请务必小心。我一直在那里解释为什么每次我重新加载页面时网站看起来都坏了你所关心的是IE7理解这些标签。不管IE11是否已经放弃了对这些标签的支持,因为在IE11上,您不需要进行任何重定向或显示消息。如果删除了新浏览器版本的条件注释,则浏览器必须将该块视为注释,其本质是什么。最好的检查方法是使用一些在线兼容性工具,如