他の誰かが言及したデュアルモードは機能するはずです(ただし、Microsoftによって示されているようには機能しません)。これは、説明されているように機能するはずのMSドキュメントで私が見た中で最も近いものです。以下に、メタ属性値がとるべき適切な形式を示す更新があります。
したがって、これを使用する場合:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9">
残念ながら、x-ua互換エンジンが行うファジーバージョンのベクトル化のため、IE8はIE8としてレンダリングされます。このドキュメントを参照してください:
ドキュメントの互換性の定義: MSDNのコンテンツ属性値について。そのセクションでは、前半で、現在のブラウザバージョンよりも大きいと定義されたバージョンベクトルが、使用可能な最大のレンダリングエンジンとして解釈されることを定義していることがわかります。したがって、emulateIE9getはemulateIE8に変換されます。愚か。
次に、実際には同じように、特定のエンジンを除外するために上記のコードスニペットのように複数のバージョンベクトルを使用することについて話します。しかし、ファジーバージョンロジックのため、それは決して機能しません。ああ、マイクロソフト。もう一度失敗します。
メタの周りでCCを使用できない理由は、ブラウザがCCに到達するまでにレンダリングエンジンを選択している必要があるためです。x-uaメタは、MS独自のドキュメントによると、他のメタまたはタイトルを除いて、ヘッダー内の何よりも前に配置する必要があります。
誰かがこれを理解できれば、IE9を含めながらIE8をサポートから除外したいので、私はすべての耳です。
重要な更新:
Robocatは、Micrsoftが示すように、セミコロンの代わりにコンマを使用することがこれを行う正しい方法であると指摘しています。私はそれをテストしました、そしてそれは私のために働きました。テストページを更新しました。
したがって、正しい形式は次のとおりです(robocatによって提案されたように):
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9">
間違った形式はこれです(Microsoftによって提案されたように):
<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9">