0

IE の互換表示モードに問題がある Web ページを取得しました。これを修正するために、ブラウザーが互換性のある表示になっているユーザーにアラートを表示します。

私の質問は次のとおりです:Javaスクリプトで互換性のあるビューステータス(オンまたはオフ)を取得する方法はありますか?

4

2 に答える 2

1

document.compatModeを使用して互換性モードを確認でき、明らかにクロスブラウザーで動作します (IE、Chrome、Firefox で検証済み):

例:標準モード:

<!DOCTYPE html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<title></title>
<script>
window.onload = function() {
    var navigator = window.navigator;
    info.firstChild.data =
        "\n navigator.userAgent: " + navigator.userAgent +
        "\n document.compatMode: " + document.compatMode;
}
</script>
</head>
<body>
<pre id="info">&nbsp;</pre>
</body>

出力:

navigator.userAgent: Mozilla/5.0 (互換性; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
  document.compatMode: CSS1Compat

互換モード:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "">
<head>
<title></title>
<script>
window.onload = function() {
    var navigator = window.navigator;
    info.firstChild.data =
        "\n navigator.userAgent: " + navigator.userAgent +
        "\n document.compatMode: " + document.compatMode;
}
</script>
</head>
<body>
<pre id="info">&nbsp;</pre>
</body>

出力:

navigator.userAgent: Mozilla/5.0 (互換性; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
  document.compatMode: BackCompat
于 2013-09-17T07:09:09.887 に答える
1
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

これにより、互換表示が無効になります

于 2013-09-17T05:55:17.440 に答える