IE8でより適切な下位互換指定ができるようになったらしい
IE8に"IE=EmulateIE7"登場、"IE=7"よりも適切な互換指定 | エンタープライズ | マイコミジャーナル
以前のIEに最適化されているコンテンツをIE8でも問題なく表示できるようにするために、METAタグやHTTPヘッダーのX-UA-Compatibleで"IE=7"と指定すると、IE7のレンダリングモードで描画されるようになっています。
ですが、HTTPヘッダーで"IE=7"と指定した場合に問題があったために、"IE=EmulateIE7" という指定方法が追加されたようです。適用できるのは、2008年6月のセキュリティアップデートを適用したIE8ベータ1以降とのこと。
ただ、元記事の説明だと分かりづらいと思います(赤字部分は加工)。
これに対する措置としてMicrosoftでは、HTTPヘッダX-UA-CompatibleタグやHTMLメタタグにおいて"IE=7"と指定すればIE7スタンダードモードでのレンダリングを試みるような処理をIE8ベータ1に追加した。これで従来との互換レンダリングを確保しつつ、デフォルトでは標準準拠のレンダリングを使おうというわけだ。しかしこの方法にも問題があった。コンテンツは互換モードだがHTTPヘッダは"IE=7"が指定されているような場合、互換モードの方もIE7レンダリングで描画されてしまう。
今回これを解決するため新しく"IE=EmulateIE7"の指定が導入された。"IE=EmulateIE7"ではIE7レンダリングを採用するものの、互換モードが指定されている場合には互換モードでレンダリングされるようになる。
IE8に"IE=EmulateIE7"登場、"IE=7"よりも適切な互換指定 | エンタープライズ | マイコミジャーナル
前提として、IE8の動作モードには3つあります。
- IE8モード(新standardsモード)
- IE7モード(Standardsモード)
- IE5モード(Quirksモード) ・・・IE6以前のモード
IEBlogの記事を読むと、元記事で言っている「互換モード」はQuirksモードのことを言っていると思います。
私の英語力だと誤読があるかもしれませんが、HTTPヘッダーで"IE=7"と指定すると、各ページのDOCTYPEを上書きしてしまうため、HTTPヘッダーの内容で全て表示されてしまう問題があったようです。
これが、HTTPヘッダーに "IE=emulateIE7" と指定すると、各ページのMETAタグで指定した内容が優先されるため、QuirksモードのページやWeb標準に準拠したページも同じサイトに共存できるようになったのだと思います。
段階的な移行を考えると、IE=emulateIE7 を利用することがよさそうですね。
指定方法はこんな感じ。
・On a per-site basis, add a custom HTTP header
X-UA-Compatible: IE=EmulateIE7
・On a per-page basis, add a special HTML tag to each document, right after the <head> tag
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
あと、HTTPヘッダーの指定は、IISでもApacheでも問題なくできるようです。
P.S.: Here are some links to reference for adding custom HTTP headers on various versions of IIS and Apache servers: IIS7.0, IIS6.0, Apache 2.2, Apache 2.0, Apache 1.3
■関連エントリー
- IE8のレンダリングモードを変える方法
- IE8 の日本語版技術概要がダウンロードできるらしい
- IE8ベータ版にはCanvasが実装されていないらしい
- IE8のVirtual PCディスクイメージが無償ダウンロード可能らしい
- IE8のベータ版がリリースされたらしい
- IE8がWeb標準準拠モードで動作するように方針転換するらしい
- IE8のユーザエージェント
- IE8はデフォルトではWeb標準モードで動作しないらしい
- IE8はWeb標準準拠が進むらしい
- IE8は2008年10月までにリリース?


コメント