我尝试在模板中使用元标记禁止Internet Explorer。
template.xhtml
:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<f:view locale="de_DE">
<h:head>
<f:facet name="first">
<h:outputText
value="<!--[if IE]>
<h1>No IE support.</h1>
<![endif]-->"
escape="false" />
</f:facet>
...
以这种方式它不起作用。我怎样才能实现它?
答案 0 :(得分:2)
你所拥有的不是元标记,而只是IE条件注释,它有条件地显示一段HTML代码,具体取决于最终用户是否使用IE。要在页面正文中显示一段HTML代码,您必须将HTML代码放在<body>
中,而不是<head>
。
<h:body>
...
<h:outputText
value="<!--[if IE]>
<h1>No IE support.</h1>
<![endif]-->"
escape="false" />
...
</h:body>
请注意,这并不会以任何方式神奇地隐藏页面的其余部分。您必须通过添加包含<link>
等内容的CSS #content { display: none; }
来扩展此功能。
无关,因为您基于已经使用OmniFaces的问题历史记录,您可能会发现<o:conditionalComment>
有助于以开发人员友好的方式呈现IE条件评论JSF。
<h:body>
...
<o:conditionalComment if="IE">
<h1>No IE support.</h1>
</o:conditionalComment>
...
</h:body>