Html 当使用文件打开页面时,为什么IE条件注释呈现方式不同:
我在html文件中写了一些条件注释,并用file://path/test.html. 看起来不错。我启动了我的应用服务器,并将我的IE 8浏览器指向。结果不同。有人能解释为什么会发生这种情况,以及可能采取的措施吗 源头Html 当使用文件打开页面时,为什么IE条件注释呈现方式不同:,html,internet-explorer,Html,Internet Explorer,我在html文件中写了一些条件注释,并用file://path/test.html. 看起来不错。我启动了我的应用服务器,并将我的IE 8浏览器指向。结果不同。有人能解释为什么会发生这种情况,以及可能采取的措施吗 源头 <html> <body> conditional <p> <!--[if IE 8 ]> <p>Only IE 8 will see this</p> <![endif]-->
<html>
<body>
conditional
<p>
<!--[if IE 8 ]>
<p>Only IE 8 will see this</p>
<![endif]-->
<!--[if gt IE 7 ]>
<p>Only gt IE 7 will see this</p>
<![endif]-->
<!--[if IE]>
<p>IE sees this.</p>
<![endif]-->
<!--[if ! IE]>-->
<p>not IE</p>
<!--<![endif]-->
<!--[if (gt IE 8)|(!IE)]><!-->
<p>Every one except IE 8 will see this (gt IE 8)|(!IE)</p>
<!--<![endif]-->
<p>after conditional
</body>
</html>
在指向app server的另一个选项卡中使用相同的浏览器:
conditional
IE sees this.
after conditional
我的目标是在IE8浏览器上插入一个标题,在所有其他浏览器上插入一个不同的标题。因此,对于该问题的替代解决方案将是受欢迎的从IE10开始,有条件的评论是并且不应该使用 为了获得最佳效果,页面的第一行应该是;这将允许旧版本的IE使用以前称为标准模式的模式,并启用该特定版本IE可用的任何功能 一般来说,这样的任务可以通过浏览器检测而不是浏览器检测来更好地完成。条件注释是旧版本IE支持的专有功能;当所述特性不再受支持时,依赖于专有特性的代码往往会在没有警告的情况下中断 如果对您试图解决的潜在问题没有更清晰的概念,很难知道建议什么,但是考虑到某些场景完全只适用于IE,没有更简单、更优雅的解决方案,这里有一种方法可以检测不依赖专有功能的IE8:
var isIE8 = window.document.documentMode == 8;
与不支持条件注释时失败的条件注释不同,此代码将返回一个值,即使documentMode属性不可用或在将来的IE版本中被删除
希望这有助于
-长矛
var isIE8 = window.document.documentMode == 8;