2

HttpBrowserCapabilities オブジェクトを使用してブラウザーのバージョンと特定の機能を確認できますが、ブラウザーがレンダリングに使用しているドキュメント モードを確認する方法はありますか?

JavaScript プロパティに相当するものdocument.documentMode

モードは開発者ツールを介して変更できます

アップデート

カミソリレイアウトページでこのようなものを使用して、IE7以下の別のスタイルシートを含めることを望んでいました...

@if (ViewContext.IsBrowserOlderThanIE8()) {
<link href="Ie7.css" rel="stylesheet" type="text/css" />
}

関数内でIsBrowserOlderThanIE8ブラウザーのバージョンを検出できますが、クライアントが使用しているドキュメント モードを知るにはこれだけでは不十分です。ドキュメント モードでは、使用される実際のレンダリング エンジンがより明確になります。

4

3 に答える 3

3

Request.UserAgentを使用して、機能フラグを含む文字列を取得できるはずです。

これらの 2 つのリンクを確認してください。

ユーザーエージェント文字列について

ユーザーエージェントのプロパティ

Edit Figured さらに詳細を追加します。基本的に、User-Agent 文字列の Trident トークンはブラウザーの REAL バージョンであり、MSIE トークンは使用しているブラウザー モードです。最初のリンクを使用して fiddler を実行し、HTTP ヘッダーがどのように見えるかを確認することで、これを簡単に確認できます。

詳細編集 フィドラーをオンにして、IE9.0 で www.yahoo.com を参照するとUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 、互換モード ボタンを押すと次のように表示されます。

User-Agent: 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; .NET4.0C; .NET4.0E; Zune 4.7)

トライデントは両方とも 5.0 ですが、MSIE は 9.0 で、次に 7.0 です。

アクセスしようとしている URL によっては、この情報を強制する方法があります。たとえば、私が現在取り組んでいる Web アプリでは、さまざまな理由から IE7 互換モードを強制しています。

于 2012-02-24T15:58:30.547 に答える
1

いいえ、サーバー側のコードを介してドキュメント モードを判断することはできません。互換性を確認できます。モードをユーザー エージェントの trident 値で指定すると、ドキュメント モードがデフォルトになります。キーワード..DEFAULTS..F12 で変更できます。その後、ユーザーが再びドキュメント モードを変更すると、what compat 以外のモードに変更されます。に変更すると、変更を確認できなくなります。

于 2014-06-27T15:51:16.380 に答える
0

クライアント側でそれを決定し、クライアントに正しいcssファイルを要求させることができます...

<head>
<script type="text/javascript>"
    ...
    var choice;
    if (condition) {
        choice = 'ie7';
    } else {
        choice = 'default';
    }
    document.writeln('<link type="text/css" rel="stylesheet" href="' + choice + '.css" />');
</script>
...
</head>

そしてもちろん、作成する各ページで実際にインラインでコーディングするのではなく、その小さな「セレクター」スクリプトをファイルに含めることもできます。

于 2014-11-18T19:30:57.150 に答える