繁体   English   中英

IE10正在阅读IE8条件评论

[英]IE10 is reading IE8 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]-->

在黑暗中刺伤,但IE可能会被你的两个X-UA兼容接头弄得一团糟,因此它会根据自己的意愿回归兼容性视图。 这是我能想到的唯一情况,IE10可以处理条件注释而不是完全忽略它们,因为在兼容性视图中它模拟IE7,即lte IE 8 ,因此会选择隐藏条件注释的内容。

看看如果将它们组合成一个<meta>标记会发生什么:

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

根据微软文件条件评论 ,“条件评论”功能已从IE 10中删除。 这意味着IE 10跳过“条件注释”只是一个注释(这是HTML规范的内容)。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM