我想我记得在某处读过 IE9不支持它们,但现在搜索后我找不到任何迹象表明这是真的。
有没有人知道关于微软是否会在 IE9 中支持条件注释的明确声明?
我想我记得在某处读过 IE9不支持它们,但现在搜索后我找不到任何迹象表明这是真的。
有没有人知道关于微软是否会在 IE9 中支持条件注释的明确声明?
平台预览支持它们,启动它(或下载它,然后启动它)并查看这个示例 - http://jsbin.com/axaju3:
<!--[if IE 9]>
<p>You are using IE 9</p>
<![endif]-->
在 IE 9 文档模式下测试。
IE 团队的 EricLaw 直言不讳地在下面的评论中证实,CC 在 IE9 中仍然可用。
IE 博客上最近的一篇文章表明,为了获得一致的跨浏览器 HTML5 解析,条件注释将无法在 IE10 的渲染引擎中工作:
<!--[if IE]>
This content is ignored in IE10 and other browsers.
In older versions of IE it renders as part of the page.
<![endif]-->
从 Platform Preview 2 开始就是如此,作者建议您应该使用特征检测作为替代方案。
Internet Explorer 9 将是最后一个支持条件注释的版本。随着 Internet Explorer 10 的发布,微软正在翻开新的一页。根据关于条件评论的 MSDN 文章:
Windows Internet Explorer 10 Release Preview 标准和怪癖模式已删除对条件注释的支持,以提高互操作性和与 HTML5 的合规性。这意味着条件注释现在被视为常规注释,就像在其他浏览器中一样。此更改可能会影响专门为 Windows Internet Explorer 编写的页面或使用浏览器嗅探来更改其在 Internet Explorer 中的行为的页面。
虽然这不会影响大多数在线网站,但它可能会影响您的网站。如果是这样,请考虑使用与 x-ua 兼容的元标记或标头来指示 Internet Explorer 模拟 Internet Explorer 9(支持条件注释的最后一个版本):
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
请注意,这将阻止您访问浏览器的最新功能,例如对 HTML5 和 CSS3 的更广泛支持,以及更多 JavaScript API。
最好的解决方案是让自己摆脱有条件的评论。在 Internet Explorer 10 中,微软的浏览器将开始以与其他流行浏览器大致相同的方式运行,不再需要编写 IE 特定的代码,并且完全不需要条件注释。
条件注释并不是唯一在 IE10 中过时的东西。还有更多。
我相信它必须这样做,否则大量网站将立即崩溃,并且为 IE9 做这样的开始并不符合微软的最佳利益。
如果会有某种兼容模式,那么有可能在这种模式下支持条件注释,但在“纯 IE9”中不支持。
PS 只是猜测。