8

在 IE 8 中,我们可以带出开发者工具。然后在顶部,有一个浏览器模式:

IE 7
IE 8
IE 8 Compatibility View

因此,如果IE 7要强制页面显示为好像浏览器是 IE 7 一样,并且
IE 8强制页面按原样使用标准 IE 8 显示,
那么额外IE 8 "Compatibility View"的有什么用呢?它有什么用?如果我们已经有了 IE 7,为什么还需要这个额外的模式呢?这个模式做了哪些IE 7模式不能做的事情?

4

1 回答 1

6

区别在于用户代理字符串。

"IE7" 完全模拟 IE7 的用户代理字符串,显示 MSIE 7.0。“IE8”完全使用IE8的原生用户代理字符串,显示MSIE 8.0以及Trident/4.0,它是IE8中使用的Trident布局引擎的版本。

IE8-Compatibility 使用浏览器的本机用户代理字符串,但将“8.0”更改为“7.0”。

因为 Trident 在 IE7 之前没有版本号,所以 IE7 字符串不显示“Trident/xx”。因此,对于 MSIE 7.0 用户代理字符串,如果还存在“Trident/4.0”,您就知道它是在兼容性视图中运行的 IE8;如果“Trident/xx”不存在,您就知道它是真正的 IE7 或 IE7 模式下的 IE8(不是兼容模式)。

我希望我的解释足够清楚,下面是一些用户代理字符串的示例。

IE7:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)

IE8:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)

IE8 兼容性:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)

于 2010-06-23T23:07:12.787 回答