2012-09-11 90 views
1

我尝试通过我的模板中的meta标签禁止Internet Explorer。如何禁用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="&lt;!--[if IE]&gt; 
     &lt;h1&gt;No IE support.&lt;/h1&gt; 
     &lt;![endif]--&gt;" 
      escape="false" /> 
    </f:facet> 
... 

以这种方式,无法正常工作。我怎样才能实现它?

+0

当你说“这行不通”时,当你试图在IE8中打开这个页面时会发生什么? – bouteillebleu

+0

jsf呈现的页面显示。相反,我只想让文字“无IE支持”。 –

+0

生成的HTML是否包含条件注释? –

回答

2

你有没有一个元标记,但只是一个IE条件注释,有条件地显示一段HTML代码取决于最终用户是否使用IE浏览器。要在页面正文中显示一段HTML代码,您必须将HTML代码放入<body>,而不是<head>

<h:body> 
    ... 
    <h:outputText 
     value="&lt;!--[if IE]&gt; 
    &lt;h1&gt;No IE support.&lt;/h1&gt; 
    &lt;![endif]--&gt;" 
     escape="false" /> 
    ... 
</h:body> 

请注意,这不会以任何方式神奇地隐藏页面的其余部分。你必须通过包含一个CSS <link>来扩展它,其中包含类似#content { display: none; }的东西。


无关的具体问题,您是根据已经使用OmniFaces你的问题的历史,你会发现<o:conditionalComment>有助于呈现在JSF开发者友好的方式IE条件注释。

<h:body> 
    ... 
    <o:conditionalComment if="IE"> 
     <h1>No IE support.</h1> 
    </o:conditionalComment> 
    ... 
</h:body> 
+0

谢谢我尝试。 –