IE10正在阅读IE8条件评论

时间:2013-09-04 18:34:56

标签: html internet-explorer internet-explorer-10 meta conditional-comments

如果您使用的是不受支持的浏览器,我有一个显示警告框的网页,IE< = 8。这在IE 8及以下版本中运行良好,但是今天我在IE 10中测试它似乎也读取了这个条件。它显示警告框时不应该。我尝试了很多东西,但我不知道可能是什么问题。以下是一些代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="chrome=1"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
 ...
</head>
<!--[if lte IE 8]>
    <div style="position:absolute;bottom:0px;left:0px;background-color:orange;color:white;z-index:1000;width:250px;text-align:center;">This content is best viewed in Chrome, Firefox or any other Modern Browser. <br/><strong>Please Upgrade.  </strong></div>
<![endif]-->

3 个答案:

答案 0 :(得分:4)

在黑暗中刺伤,但IE可能会被你的两个兼容X-UA的标头弄糊涂,因此它会自行回归兼容性视图。这是我能想到的唯一情况,IE10可以处理条件注释而不是完全忽略它们,因为在兼容性视图中它模拟IE7,lte IE 8,因此会获取该条件注释隐藏的内容。

如果您将它们合并到一个<meta>标记中,请查看会发生什么:

  <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />

答案 1 :(得分:2)

根据Microsoft文档Conditional comments,“条件评论”功能已从IE 10中删除。这意味着IE 10将“条件注释”简单地作为注释(HTML规范就是这样)。

我通过测试IE 10问题中的代码证实了这一点。没有出现警告框,与浏览器模式设置无关。听起来很可能真实页面有一些语法错误导致某些文本显示为普通内容,而不是“条件评论”。

答案 2 :(得分:0)

所以我一直在调试并尝试修复代码,以便它可以工作,我认为有两件事可能已修复它。
首先:条件注释是在body标签打开之前声明的,我猜测因为它是一个div元素,所以它必须包含body标签。将它移到体内可以解决它 第二:我还有一个脚本标签,其中包含文档的头部,其中包含一些jQuery脚本。将此标记移动到body标记的末尾可能也可以解决问题。