2012-09-11 115 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

謝謝我嘗試。 –