アプリケーションをIE9ドキュメント標準で実行する必要がありますが、IE8ドキュメント標準で自動的にレンダリングされる理由がわかりません。
Glassfish3.1.2で実行されているJSF2.1.17とPrimefaces3.4を使用しています。私のIDEはNetbeans-7.1.2です。IEで開発者ツールを開くと、[HTML]タブの下に次のように表示されます。
<--!DOCTYPE html-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
ただし、[スクリプト]タブには次のように表示されます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML lang=en xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<HEAD>
<META content="IE=8.0000" http-equiv="X-UA-Compatible">
すべてのページとテンプレートを確認しましたが、メタcontent = "IE = 8.0000"または上記の!DOCTYPEがどこにも見つかりません。それは非常に奇妙です。
私のすべてのページには次のものがあります。
<!DOCTYPE html>
私のメインテンプレートにはこれがあります:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
他のページには:
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
template="/layout/someFile.xhtml" >
これが私が試したことです:
1)Glassfish JSFを2.1.17に更新しました。これは、古いバージョンのMojarraにバグがあり、DOCTYPEを無視する原因となったためです。
2)追加しました:
<meta http-equiv="X-UA-Compatible" content="IE=9" >
すべてのページに、IE9が適用されることを期待していますが、これは機能しませんでした。
3)次に、content = "IE = Edge"を使用してみましたが、変更はありません。
4)DOCTYPEを次のように変更しました:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTMLが正しくレンダリングするためにこの厳密なDOCTYPEが必要かどうかわからない。しかし、これはうまくいきませんでした。
どんな助けでも素晴らしいでしょう。私はこれを整理するために多くの研究を行ってきましたが、私はWeb開発に不慣れであるため、理解はかなり限られています。