JavaScriptとサーバサイドでユーザエージェントが違うだと!?

  • このエントリーをはてなブックマークに追加
  • 80

なんか、JavaScriptで書いてるユーザエージェント判定とサーバ側で書いてる判定の結果が違うなと思ったら、こういうことか。やっぱIEは大変だわ。

Internet Explorer 9 以降のバージョンにおいて、クライアント スクリプト navigator.userAgent プロパティで取得した文字列の “MSIE x.x” 部分と IE が実際に Web サーバーへ送る User-Agent ヘッダーの文字列の “MSIE x.x” 部分のバージョンが異なることがあります。この事象は、HTTP 応答ヘッダー、またはページ上の Meta タグにおいて X-UA-Compatible によるドキュメント モードの指定があった場合に発生します。

例えば、ページに <meta http-equiv=”X-UA-Compatible” content=”IE=7″> の Meta タグがあり、IE9 のブラウザー モードが [Internet Explorer 9.0] の場合、IE9 が Web サーバーに送信する User-Agent ヘッダーの文字列はブラウザー モードにしたがって “Mozilla/5.0 (compatible; MSIE 9.0; … Trident/5.0)” になりますが、navigator.userAgent プロパティは X-UA-Compatible 指定にしたがって “Mozilla/4.0 (compatible; MSIE 7.0; … Trident/5.0; …)” になります。
IE9 以降 navigator.userAgent は X-UA-Compatible 指定に影響されます

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク