Iframeのあるページがあり、iframeにはquirksモードで実行する必要のあるコードが含まれています(これはMicrosoftのOutlook Web Accessであるため、とにかく修正できるコードではありません)。 IE9では、親フレームがIE9ドキュメントモードの場合、すべてのiframeを同じドキュメントモードにする「機能」が導入されました。これにより、iframeのコードが壊れます。
これがIE9のバグだと思っていたのですが、私のチケットは「設計による」ものとして却下されました( ここにチケットがあります 見たい場合は)
サイト全体を癖モードで実行することはできませんが、このページでのみ実行する必要があります。プログラムで癖モードのレンダリングをオンにする方法はありますか?それか、「互換表示」ボタンを押すことをエミュレートする方法のいずれかです。これを押すと、IE9がIE8に変わり、これも問題なく機能します。
これらのいずれかを行うことは可能ですか?
私はあなたと同じ問題を抱えていて、2011年4月にかなり広範囲に調査しました。それまで、IE9でトップレベルのドキュメントを「標準モード」にし、子iframeのドキュメントを「癖モード」にする唯一の方法はメタタグを使用して、ブラウザをIE8のように動作させます。 (私が知る限り、これは依然として当てはまり、Microsoftはそれを変更するつもりはありません。)ブラウザーモードを変更するために使用できるさまざまなメタタグがありますが、私が使用したものは次のとおりです。
<meta http-equiv="X-UA-Compatible" content="IE=8" />
このメタタグを含めると、すべてのドキュメントがDoctypeに従って(IE8ルールに従って)適切にレンダリングされるはずです。
ただし、これにより、最上位のドキュメントであっても、IE9で新しくサポートされたcss機能を使用できなくなることに注意してください。 border-radius、box-shadow、opacityなどを使用することはできません。
これに関する詳細情報は iframeはquirksモードでレンダリングされますか? にあります。これは、ieのiframeとdoctypeについてより一般的な質問をします。
ところで、iframeに埋め込まれたコンテンツの癖モードは通常の癖モードとまったく同じではありません。これを参照してください: http://msdn.Microsoft.com/en-us/library/gg558056(v = VS.85).aspx