JSF 2.1.7将<!--[if IE ]>标签呈现为文本

3
我们将JSF升级到最新版本2.1。之前我们使用的是JSF2.0.4。我们的xhtml页面有一个针对IE浏览器的条件注释标签,但在旧版本中无法呈现为文本。
但是,在新的JSF2.1.7中,这个标签在IE中被呈现为文本。有什么办法可以解决这个问题吗?
2个回答

5
使用<h:outputText escape="false">代替。
<h:outputText value="&lt;!--[if IE]&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ie.css&quot;/&gt;&lt;![endif]--&gt;" escape="false" />

抱歉,我现在无法立即回答这个问题。我们总是使用 javax.faces.FACELETS_SKIP_COMMENTS。至少症状表明注释的渲染已经更改为不再解释注释内部的任何HTML/JSF代码(当然这是有道理的)。 - BalusC
丑陋的解决方案,但看起来似乎是唯一可能的方法。 - Nowaker
自不久以前,OmniFaces 提供了一个<o:conditionalComment>组件,用于更美观的目的。请参阅展示:http://showcase.omnifaces.org/components/conditionalComment - BalusC

0
你可以像这样做:
<f:verbatim>
  <!--[if lte IE 8]>
    <script src="js/conditional-comment.js"></script>
  <![endif]-->
</f:verbatim>

1
自JSF 2.0起,<f:verbatim>已被弃用。 - BalusC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接