IE11でエンタープライズモードが有効にならない
はじめに
IE11は、Windows8.1で標準搭載されている最新ブラウザです。
業務でIE8からIE11への移行を進めているんですが、その際にエンタープライズモードという下位互換モードを使う事になりました。
Windows Insider用語解説:IE8との互換性を向上させるIE11のエンタープライズモード - @IT
が、なぜかポップアップウィンドウのみエンタープライズモードが効かない!
もしかして、ポップアップウィンドウは非推奨なのか、やっぱり自前で直すしかないのか、と諦めかけたところ、実は設定ミスでちゃんと動作していなかっただけでした。
途中で諦めずに粘っていると、時には楽な方の道が開ける事があるよ、というのが今回のお話。
結論
サイトリストにはドメインとパスを別々のタグで記載する。
経緯
今までIE8で動かしていたWEBアプリをIE11に移行したところ、「レイアウト崩れ」やら「ボタンが効かない」といった問題が多発!
調べてみると、不具合はMicrosoftの提供資料(PDF)とも一致しており、エンタープライズモードで回避できるらしい。
ちなみにエンタープライズモードは、ブラウザのツールメニューからページ単位で有効にできるが、サイトリストを作成すればドメイン単位で有効にできる。
が、やり方に従ってレジストリとサイトリストを作成しても、なぜかポップアップウィンドウのみエンタープライズモードが効かない!
IEを再起動しても、PCをシャットダウンしても、全く有効にならない!
試しに、Microsoftの提供資料(PDF)の記載の通り、HTMLのmetaタグを直したところ、「レイアウト崩れ」は解消する事を確認。
もうこの方法しかないのかと諦めかけたが、やっぱり直したくない(楽したい)と考え、もう一度サイトリストの設定方法を確認してみる。
ファイルと Enterprise Mode Site List Manager を使ってエンタープライズ モードのサイト一覧に複数のサイトを追加する
すると、パスの指定が違うことを発見!
私の書き方だと、
<domain exclude="true">news.msn.com/pop-culture</domain>
一方、MSDNによると、
<domain exclude="true">news.msn.com
<path exclude="false">pop-culture</path>
</domain>
どうやらパスはドメインに含めてはダメらしい。
サイトリストのパスの指定を修正したところ、無事ポップアップウィンドウでもエンタープライズモードが有効になる事を確認。めでたしめでたし。
まとめ
ちなみにIE11にはエンタープライズモードとは別に、互換表示設定もあります。
エンタープライズモードはIE8、互換表示設定はIE5との互換性があるようですね。
ただ、今後はサポートされなくなっていくでしょうから、なるべく早目にIE11の標準モード(エッジモード)に対応した方が良さそうです。