私は大きなプロジェクトで作業しています。ユーザーがIEで互換性ビューを使用しているかどうかを判断する必要があります。
私はこのコードを使用しています。それは素晴らしい取り組んでいるイントラネットサイトのIE9互換モードが間違ったユーザーエージェント文字列を持っています
var agentStr = navigator.userAgent;
var mode = null;
if (agentStr.indexOf("Trident/5.0") > -1) {
if (agentStr.indexOf("MSIE 7.0") > -1)
mode = "IE9CV";
else
mode = "IE9";
} else if (agentStr.indexOf("Trident/4.0") > -1) {
if (agentStr.indexOf("MSIE 7.0") > -1)
mode = "IE8CV";
else
mode = "IE8";
} else
mode = "IE7";
、問題は、次のとおりです。
1 - イントラネット環境では、オプションの「互換表示で表示するイントラネットサイトは、」クライアントのブラウザでチェックされ、そして私ができることは何もありませんその
約2 - があり、互換性ビューを検出するためのスクリプトのために問題はないだろうが、私はなぜ知らない、私は受信ユーザエージェントはIE 9のページがロードの場合、以下の本です互換表示
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
非常に同じページが
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
IE9
を搭載した場合、私はIE9互換表示についてMozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
を受けることがsouldものの、それは次のようになりますよう。 私はIE9互換性ビュー(期待どおり)を強制するときにこの最終結果を得ますが、それだけでロードすると、私はIE9標準と同じユーザーエージェントを取得します。だから私はユーザーがIE9の標準ビューまたは互換性のあるビューを持っているかどうかを判断する方法を見つけることができません。
自分自身を明確にしたかどうかはわかりませんが、大きなIEのバグのようです。
どうすればいいですか?誰もこの問題を経験しましたか?
これは状況をシミュレートする画面です:
非常に奇妙な...あなたはそれが実際に確認され、「表示イントラネットサイト」との互換性モードでそれを示していますか?あなたが正しいので、MSIE 7.0を表示する必要があります。 IE9 Compモードの場合はTrident/5.0;UAgentがそれを表示している場合は実際には実際にはCompモードではないかもしれないからです。 –
mcpDESIGNS最後の編集をチェック...状況をシミュレートした画像と私が得たレスポンスを追加しました=/ – rafaces
@Christophこれは重複しているのではなく、別の問題です。私は最近多くの互換性を扱ってきましたが、私はこの問題についても知らなかった。この奇妙なイントラネットのチェックボックスの問題についてアドバイスをいただいているかどうかは、マイクロソフトにお問い合わせください。私はUAStringが正しいのでなければ気に入っていますが、本当にCompatibilityモードであるかどうかを知ることができるかどうかわかりません。 –