14

HTML5 コマンドを実行して、IE9 標準モードで実行する必要がある親ページがあります。その下には、互換モード (IE7/8) で実行する必要がある iframe があります。

私が理解しているように、IE9では、iframeは親からdoctypeを継承します。あれは正しいですか?この問題の解決策はありますか? どういうわけか、標準モードのdoctype親フレームの下で癖のあるdoctypeでiframeを実行できますか? ありがとう、タル

4

1 に答える 1

27

ここで公式に文書化されているように、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

于 2013-03-22T05:39:31.903 に答える