IE11でドキュメントモードを変更した際のUser-Agentについて

IEのドキュメントモードをmetaタグで変えた際のUser-Agentの取り扱いには注意が必要です。

以下のようにしてドキュメントモードが変更してあるサイトに対してIE11でアクセスしてみます。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8,chrome=1" />

その際のUserAgentを確認してみます。

クライアント側

navigator.userAgent;
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Avant Browser)"

上記のようにしてMSIE 8.0になっています。これは、IE9からX-UA-Compatible によるドキュメント モードの指定に応じて MSIE バージョンを返すように動作変更がされているためです。

サーバサイドへ送られるUserAgentは以下のようになるため、サーバ側でのブラウザ判定とクライアント側でのブラウザ判定に差異が出るようになります。

サーバ側

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; Avant Browser; rv:11.0) like Gecko

クライアントサイドのJavascriptではnavigator.userAgent プロパティの “MSIE x.0″ のサブストリングではなく、”Trident/x.0” のサブストリングを条件にしてIEのバージョン判定を行うようにします。

参考

http://support.microsoft.com/kb/2762271/ja