27

重複の可能性:
IE7 ブラウザーと IE7 互換モードのブラウザーを区別する

かなり大規模なシステムで IE8 を完全にテストする時間はありませんでした。IE8の使用も禁止できないところまで来ています。私たちのユーザーは頑固で、それほど洗練されていないので、「互換モード」ボタンを使用するように指示できるとは思いません。代わりに、一時的な修正として「IE=EmulateIE7」メタ タグを追加します。

問題は、このタグが使用されている場合でも、ブラウザーは自分自身を IE8 として報告し、それがページによって検出されて拒否されることです。サーバー側の検出がメタ タグを検出できない理由は理解できますが (サーバーには、メタ タグが送信されて処理される前に既にユーザー エージェントが存在します)、クライアント側のチェックも失敗します。クライアント マシンで互換モード ボタンがクリックされた場合、ユーザー エージェントは IE7 ですが、メタ タグを使用している場合はそうではありません。

これは、とりわけ、チェックを無効にする必要があることを意味します。その後、どこかで間違いを犯してメタ タグをページに追加するのを忘れると、ページが壊れてしまいます。

他の誰かがこれに遭遇し、より良いアプローチを考え出しましたか? モードが meta タグによって設定されている場合、IE8 が互換モードで実行されていることを検出する方法はありませんか?

そして、すべてのページを IE8 標準モードと互換性を持たせるべきであるという有効な考え方があることは知っていますが、現実の片隅では、それは現時点で実行可能なオプションではありません (指摘しますが、非標準的な方法で書かなければならない 4 つまたは 5 つのバージョンの IE を作成しませんでした)。

4

5 に答える 5

24

IE8では、互換モードに関係なく、User-Agent文字列にトライデントトークンが含まれています。

詳細については、MSDNを参照してください:http://blogs.msdn.com/ie/archive/2009/01/09/the-internet-explorer-8-user-agent-string-updated-edition.aspx


Windows Vista Mozilla / 4.0上のIE7 (互換性; MSIE 7.0 ; Windows NT 6.0)

Windows Vista上のIE8(互換表示)
Mozilla / 4.0(互換; MSIE 7.0 ; Windows NT 6.0; Trident / 4.0


Windows Vista Mozilla / 4.0上のIE8 (互換性; MSIE 8.0 ; Windows NT 6.0; Trident / 4.0

于 2009-08-31T06:49:30.323 に答える
5

参考までに、互換モードの検出方法(互換表示の検出方法)の詳細については、次のリンクを参照してください...

http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx

...これはいくつかの役立つ情報を示しています。

于 2010-01-08T17:05:27.847 に答える
2

Facebook などの IE8 エミュレーション BLACKLIST サイトからサイトに来るリンクを処理する場合、問題は実際にはさらに複雑になります。

Facebook の共有リンクにより、リンクがポップアップで開きます - デフォルトでチェックされている互換表示設定で「INCLUDE UPDATE WEBLISTS」がチェックされている場合、ポップアップ ウィンドウは Facebook からのブラックリスト リファラーを認識し、ブラックリストでウィンドウを開きます。最初はモード。Trident\4.0 をバックグラウンドで検出すると、値が表示され、ダウンレベルの CSS が設定されます。

ただし、ブラウザーが読み込まれた後、Compat モードから切り替えられ、更新せずに STANDARD モードに変更されます。したがって、割り当てられた標準モードに間違った CSS が割り当てられています。

解決策 - IE ブラウザの互換モードを強制的に解除します。うん - 奇妙に思えます。必要がないのに、なぜユーザーをサイトのダウンレベルにさせてしまうのでしょうか。

Downlevel と同じように、IE=EmulateI7 を設定してブラウザーを強制的にダウンさせると、IE=EmulateIE8 を追加して、ユーザーに IE8 標準でページを表示させることができます。このモードでは、互換表示を選択する機能も削除され、そのモードのテスト ニーズが軽減されます。

于 2009-10-23T20:34:31.173 に答える
1

「IE8互換モードの検出」とは言えませんが、同様に役立つ場合があります。

サーバー自体にアクセスできる場合は、HTTP ヘッダーを送信できます。これについては、Mike Ormond のブログを参照してください。IIS でメタ スイッチを実装するための MSDN ページには、ヘッダーの詳細とその設定/送信方法が記載されています。

于 2009-08-25T15:21:32.927 に答える