这是我的标准条件评论,仅针对 IE8 及以下版本提供 IE hack。它适用于初始负载。
<!--[if lt IE 9]>
<link href="Styles/IE.css" rel="stylesheet" type="text/css" />
<![endif]-->
有回传时,Chrome 21.0.1180.60 m 突然加载!到底是怎么回事?
更新:
我确认这也发生在 Firefox 和 Opera 中。我想知道.NET是否以某种方式刮取CSS的源代码,而不考虑条件注释并将它们放在视图状态中,它以某种方式在回发中包含CSS文件?这甚至有意义吗?这里还会发生什么?
更新 2:
这很奇怪。条件注释仅加载 CSS(不是纯文本、html 或 javascript)并且仅在标题中加载。Firefox、Opera 和 IE 将加载任意数量的条件注释(无论它们针对哪个浏览器),但 Chrome 只会加载第一个。因此:
<!--[if lt IE 9]>
<link href="Styles/IE.css" rel="stylesheet" type="text/css" />
<![endif]-->
<!--[if IE 7]>
<style>#test{border:dashed 1px red;</style>
<script>alert("seven");</script>
<![endif]-->
<!--[if IE 8]>
<style>#test{border:dashed 1px blue;</style>
<script>alert("eight");</script>
<![endif]-->
<!--[if IE 9]>
<style>#test{border:dashed 1px green;</style>
<script>alert("nine");</script>
<![endif]-->
将IE.css
在回发时加载所有浏览器,IE、Opera 和 Firefox 将加载 IE 7、8 和 9 的 CSS,导致#test
. Chrome 不提供#test
任何边框。不会发生任何 javascript 警报。