JSF2、GlassFish 3.1、PrimeFaces 2.x を使用しています。
IE9 で奇妙なレンダリングの問題が発生しています。次のコードを挿入することで、IE9 を IE9 として強制的にレンダリングできるはずです。
<html>
<head>
<!-- Enable IE9 Standards mode -->
<meta http-equiv="X-UA-Compatible" content="IE=9" />
...
しかし、問題は、メタ タグがセクションの最初のタグでなければならない (と聞いています) ため、機能しないということです。
XHTML ファイルでこれを実行すると...
<html ...>
<f:view contentType="text/html" locale="#{loginHandler.currentLocale}">
<h:head>
<!-- Enable IE9 Standards mode -->
<meta http-equiv="X-UA-Compatible" content="IE=9" />
結果の HTML は次のようになります。JSF/PrimeFaces によって、新しいメタ タグの前に一連の「link」タグと「script」タグが挿入されています。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link type="text/css" rel="stylesheet" href="/orcf-webui/javax.faces.resource/jquery/ui/jquery-ui.css.jsf?ln=primefaces&v=2.2" />
<link type="text/css" rel="stylesheet" href="/orcf-webui/javax.faces.resource/wijmo/wijmo.css.jsf?ln=primefaces&v=2.2" />
<script type="text/javascript" src="/orcf-webui/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&v=2.2"></script>
<script type="text/javascript" src="/orcf-webui/javax.faces.resource/jquery/ui/jquery-ui.js.jsf?ln=primefaces&v=2.2"></script>
<!-- Enable IE9 Standards mode -->
<meta http-equiv="X-UA-Compatible" content="IE=9" />
メタ タグを適切な場所に配置して機能させる方法はありますか? (または、この IE9 の問題を解決する別の方法はありますか?)
ベストアンサー1
メタタグは前にすべてのPrimeFaces関連:http://blogs.msdn.com/b/cjacks/archive/2012/02/29/using-x-ua-compatible-to-create-durable-enterprise-web-applications.aspx
HTTP ヘッダーと HTML HEAD は完全に異なるものです。
PrimeFaces 3.0では、新しいファセットが追加されました
h:head
:http://blog.primefaces.org/?p=1433したがって、解決策は次のようになります。
<h:head>
<f:facet name="first">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
</f:facet>
</h:head>