HTML5 コマンドを実行して、IE9 標準モードで実行する必要がある親ページがあります。その下には、互換モード (IE7/8) で実行する必要がある iframe があります。
私が理解しているように、IE9では、iframeは親からdoctypeを継承します。あれは正しいですか?この問題の解決策はありますか? どういうわけか、標準モードのdoctype親フレームの下で癖のあるdoctypeでiframeを実行できますか? ありがとう、タル
ここで公式に文書化されているように、IE9 の子 iframe で別のレンダリング モードをトリガーすることはできません: http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx ):
新しいレンダリング エンジンは、HTML ページが標準の最高レベルのサポートを要求したことを Windows Internet Explorer が検出した場合にのみ使用されますが、frame および iframe 要素内に読み込まれる可能性のある子ページについては、常に同じことが当てはまるとは限りません。一度にアクティブにできるレンダリング エンジンは 1 つだけであるため、IE9 モードには Quirks モードのエミュレーションも含まれています。
ただし、「quirks モード エミュレーション」をトリガーすると、IE9 レンダリング エンジンはアクティブのままになりますが、古い quirks モードと一致するようにいくつかの方法でその動作が変更されます。
JSBin デモ: http://jsbin.com/ozejuk/1/
この例には、スタイルの div がありますbackground: #ff0000; background: 00ff00; border-radius: 30px
... quirks モードでは、16 進数の色#
は受け入れられません。IE9 モードではそうではありません。IE9 でデモを読み込むと、親ページに赤い div が表示され、iframe に緑の div (角が丸くなっています) が表示されます。
iframe で quirks モードのエミュレーションをトリガーする方法: http://msdn.microsoft.com/en-us/library/gg558096(v=vs.85).aspx
短いバージョン: DOCTYPE を省略し、以下を追加:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
癖モード エミュレーションがレンダリングに及ぼす影響の完全なリスト: http://msdn.microsoft.com/en-us/library/gg558047(v=vs.85).aspx