今さらIE8の互換表示モードに悩まされた時


もはや切り捨ててもいいんじゃないか感はんぱではないIE8ですが、
業務上やむを得ず対応しないといけないことはままあります。

IEとえば互換表示モードなるものがあり、親切にも以前のIEバージョンでも動作するようにしてくださっていて、
それが原因で最新のブラウザーモードとドキュメントモードにしておけば問題なく表示されるところを、
これまた親切にもIEがよしなに互換表示モードに切り替えてくださることで、
見事表示が崩れるという素敵現象が発生することがあります。

基本的にこういった事態を回避する方法としてよくあるのが、
htmlのheadタグ内に以下のmetaタグを記入して互換表示モードにさせないというものがあります。

まほうのじゅもん
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- IE=edge,chrome=1 とすることもある -->

基本的にはこれで問題ないことが多いのですが、(事実今まではこれで何とかなってた)
何故か急にこの指定が効かなくなり、
エラーが発生した旨のポップアップとともに強制的に互換表示モードにさせられる謎現象にハマりました。
(なったりならなかったり、開発者モードで設定かえるとなおったりする)

あれこれ試行錯誤した結果、
サーバーのレスポンスヘッダにも

/etc/httpd/conf/httpd.conf
Header set X-UA-Compatible 'IE=edge'

のようにX-UA-Compatible: IE=edgeを追加したところ見事解決しました。
(そもそも互換表示に切り替えるボタン自体disabledになる)

なので同じような問題に幸運にもぶち当たった方は一度お試しいただくといいかもしれません。