2011-10-14 7 views
5

私は自分のウェブページにブラウザサポート機能を実装しようとしています。 Firefox 3.6では正常に動作していますが、何らかの理由でIE 8のuserAgentが間違った値を返しています。IE 8 navigator.userAgentがMSIE 7.0を返すのはなぜですか?

ここでは、IE8で「ローカル」JavaScriptコードを実行すると、navigator.userAgentが正しい情報(MSIE 8.0)を返します。しかし、このスクリプトをサーバー上で実行すると、Internet Explorer 8ブラウザーでMSIE 7.0が返されます。

アイデア?

+2

ユーザーエージェントをスニッフィングしている場合、あなたは間違ってそれをやっているし、あなたがそのような問題の束を持っているつもりです。あなたは機能の検出を使うべきですが、ie7とie8の条件付きコメントを設定し、何が起こっているかを見るためにいくつかのCSSを変更することもできます。 – albert

+1

ブラウザのスニッフィングとは対照的に、機能の検出を使用する方がより堅牢で、そこにはたくさんのライブラリがあります。[このGoogle検索](http://www.google.co.uk/webhp?sourceid=chrome-instant&ie=UTF -p                = 57834l58466l1l58566l8l4l0l0l0l0l253l658l1.1.2l4l0&bav = on.2 or.r_gc.r_pw。、cf.osb&fp = 64c9fa8ed75e2609&ion = 1&biw = 1680&bih = 865) – Clive

+1

サーバーはローカルネットワーク上にあるの? IE8は、デフォルトでは、IE7 [イントラネットサイトを閲覧するとき]のように見せかけます(http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx)。 – robertc

答えて

2

Microsoftは、このページを提供します。 F12開発者ツールは、Internet Explorer、ユーザーエージェント文字列のバージョントークンのブラウザモードを変更するために使用されている

トークン

トライデントは、ブラウザが以前のバージョンのように見えるように表示されるように修正されています。これは、ブラウザ固有のコンテンツをInternet Explorerに提供できるようにするためであり、通常、ブラウザの最新バージョンを反映するようにWebサイトが更新されていない場合にのみ必要です。

この場合、トライデントトークンがユーザーエージェント文字列に追加されます。このトークンには、現在のブラウザモードに関係なく、ブラウザのバージョンを識別できるバージョン番号が含まれています。

MORE:http://msdn.microsoft.com/en-us/library/ms537503.aspx

4

あなたはIE7モードで動作していませんか?開発者設定のどこかで変更することができます(F12、私は思っています)。 1は、IE8がない7

+0

あなたは "互換モード"を意味します。はい、その可能性が高いので、JavaScriptで、ダグラスCrockfordsのライブラリを使用して、あなたはそれを検出することができますが、サーバー上であなたはチャンスがないです。 – TMS

関連する問題