关于html:如何通过javascript获取兼容的视图状态

how to get compatible view status by javascript

我得到了一个网页,该网页在IE中具有兼容的视图模式。我将向用户显示其浏览器在兼容视图中的警报,以便对其进行修复。

我的问题是:是否可以通过Java脚本获取兼容的视图状态(打开或关闭)?


document.compatMode可用于检查兼容模式,并且显然可以跨浏览器运行(已通过IE,Chrome,Firefox验证):

例如,标准模式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>


window.onload = function() {
    var navigator = window.navigator;
    info.firstChild.data =
       "\
 navigator.userAgent:"
+ navigator.userAgent +
       "\
 document.compatMode:"
+ document.compatMode;
}

</head>
<body>
[cc lang="javascript"]


输出:

1
2
 navigator.userAgent: Mozilla/5.0 (compatible; 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

兼容模式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN""">
<head>


window.onload = function() {
    var navigator = window.navigator;
    info.firstChild.data =
       "\
 navigator.userAgent:"
+ navigator.userAgent +
       "\
 document.compatMode:"
+ document.compatMode;
}

</head>
<body>
[cc lang="javascript"]


输出:

1
2
 navigator.userAgent: Mozilla/5.0 (compatible; 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

1
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

这将禁用兼容性视图