2

Webサイトおよび接続されているさまざまなWebアプリでIE互換モードを設定する際に問題が発生します。このテーマについて多くの調査を行った後でも、これがどのように機能するかについて少し混乱しています。基本的に、IE10経由でアクセスすると問題が発生する会社のWebサイトで作業しており、IE9互換モードで実行するように設定しようとしています。IE10で動作していないサードパーティのコントロールやサイトの他のさまざまな要素がたくさんあり、このサイトを完全に更新する時間がまだありません(かなり大きなサイトです)。私が見つけたすべてのことから、Web構成ファイルにコードを追加するか、ヘッダーのメタタグにコードを追加して、互換モードを設定するように指示されました。簡単そうです。

<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=9" />
  </customHeaders>
</httpProtocol>

また

<meta http-equiv="X-UA-Compatible" content="IE=9">

互換モードを手動で(コードではなく自分のブラウザーで)設定すると、すべてが正常に機能します。これは、IE開発者ツールで確認できるものです。

Browser Mode: IE10 Compat View    Document Mode: IE9 Standards

ここでの問題は、上記のメソッドの1つを使用してコードでこれを設定すると、これが表示され、何も変わらないように見えることです。

Browser Mode: IE10    Document Mode: IE9 Standards

手動で変更した場合とは異なり、ここではドキュメントモードのみが影響を受けることに注意してください。前述のように、私はこれについて多くの調査を行いましたが、ブラウザモードとドキュメントモードの違いや、変更する必要があると思われるものが、ここで誰もが推奨しているソリューションの影響を受けない理由をまだよく理解していません。これが何を意味し、何がポイントであるかを正確に理解するのを誰かが助けてくれますか?さらに重要なことに、私がここで達成しようとしていることを行う方法を誰かが知っていますか?

4

1 に答える 1

4

IEでは、プログラムでオプションを設定することはできませんBrowser Mode。X-UA-Compatible設定は、を設定するだけでDocument Modeあり、に機能する他の設定を使用することはできませんBrowser Mode

ただし、幸いなことに、ほとんどの場合、とにかく心配する必要はありませBrowser Modeん。

これDocument Modeは、実際のレンダリングエンジンを変更するものです。これは、IEがコンテンツをIE9モードで表示するための重要なものです。

Browser Modeそれほど重要ではありません。これは、ユーザーエージェント文字列を設定するだけです。つまり、使用しているブラウザを識別するためにブラウザがサーバーに送信するテキストです。ページの実際のレンダリングは、この設定の影響を受けません。

したがって、サイトがユーザーエージェント文字列を調べてサーバー側のブラウザスニッフィングを実行しないと仮定すると、実際にはまったく心配する必要はありませんBrowser Mode

ブラウザのスニッフィングを行っている場合は、影響を受ける可能性があります。この場合、ブラウザにモードを強制的に変更することはできないため、少し行き詰まりますが、その場合は、別の手法を試すことをお勧めします。さまざまな理由から、とにかくユーザーエージェント文字列をスニッフィングすることは悪い考えであることが一般的に認められています。その場合は、クライアント側の機能検出を使用したほうがよいでしょう。

お役に立てば幸いです。

于 2013-03-27T13:36:12.027 に答える