1

次のasp.netコードを使用して、ブラウザーの種類を検出しています。

   System.Web.HttpBrowserCapabilities browser = Request.Browser;
            if (browser.Browser == "IE" && browser.MajorVersion == 7)
            {
                do stuff...
            }

IE9を実行していますが、デバッグするとき、browser.MajorVersionは常に7です。これを引き起こす原因とその防止方法を教えてください。

4

2 に答える 2

3

開発ツールでブラウザモードがIE9に設定されていることを確認してください

開発者ツール

これは、MSがDoctypesソースリンクについて言っていることです

  1. Webページがdoctypeディレクティブを指定し、X-UA-Compatibleヘッダーが含まれている場合、ヘッダーはディレクティブよりも優先されます。

  2. ブラウザがヘッダーをサポートしているが、指定されたドキュメントモードのいずれもサポートしていない場合、ブラウザはサポートされている最も高いドキュメントモードを使用してWebページを表示します。

ヘッダーをサポートしていない古いバージョンのブラウザは、を使用してドキュメントモードを決定します。

Internet Explorer 9以前のバージョンでは、IE5(Quirks)モードでディレクティブなしのWebページが表示されます。そのため、すべてのWebページでHTML5Doctypeなどのディレクティブを指定することをお勧めします。

この柔軟性により、人気のある以前のバージョンのInternetExplorerとの互換性を最大限に高めることができます。

注サポートされているすべてのバージョンのInternetExplorer(Microsoft Internet Explorer 6を含む)は、HTML5ドキュメントタイプを標準モードのドキュメントタイプとして解釈するため、別の宣言を必要としないすべてのWebページにHTML5ドキュメントタイプを使用することをお勧めします。これにより、Webページが利用可能な最高の標準モードで表示されるようになります。

X-UA-Compatibleヘッダーでは、大文字と小文字は区別されません。ただし、タイトル要素と他のメタ要素を除く他のすべての要素の前に、Webページのヘッダー(HEADセクション)に表示される必要があります。

于 2013-02-11T23:10:08.437 に答える
1

次の例に示すように、Webページに特定のドキュメントモードを指定する必要があります。メタ要素を使用して、WebページにX-UA-Compatibleヘッダーを含めます。

<html>
  <head>
    <!-- Enable IE9 Standards mode -->
    <meta http-equiv="X-UA-Compatible" content="IE=9" >
    <title>My webpage</title>
  </head>
  <body>
      <!-- Your Content -->
  </body>
 </html> 
于 2013-02-11T23:18:36.253 に答える