IE 8的开发者工具:浏览器模式:IE 7、IE 8,但是IE 8的“兼容性视图”是什么?

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

如果要强制页面的显示方式像IE 7浏览器,就使用IE 7,如果要使用标准的IE 8,则使用IE 8。那么额外的IE 8“兼容性视图”有什么作用呢?如果我们已经有了IE 7,为什么需要这种额外的模式?这种模式与IE 7模式相比能做到哪些功能上的区别呢?

1个回答

6
区别在于用户代理字符串。
“IE7”完全模拟IE7的用户代理字符串,显示MSIE 7.0。 “IE8”完全使用IE8的本机用户代理字符串,显示MSIE 8.0以及Trident/4.0,这是IE8中使用的Trident布局引擎的版本。
“IE8-兼容性”使用浏览器的本机用户代理字符串,但将“8.0”更改为“7.0”。
由于Trident在IE7之前没有版本号,因此IE7字符串不显示“Trident/x.x”。因此,如果存在MSIE 7.0用户代理字符串,并且还存在“Trident/4.0”,则知道它是在兼容性视图下运行的IE8;如果“Trident/x.x”不存在,则知道它是真正的IE7或IE8在IE7模式下(而不是兼容性模式)。
我希望我的解释足够清楚,以下是一些用户代理字符串的示例。
IE7:
Mozilla/4.0(兼容;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(兼容;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(兼容;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)

那么IE 8兼容视图有什么用呢?只是为了拥有不同的USER_AGENT字符串吗?此外,当网站向用户提供带有IE7-Compatibility元标记的页面时,情况是否反转?(浏览器表示它是IE 8,但页面在客户端使用非Trident渲染引擎呈现) - 那么,在开发人员工具中选择“ IE 8兼容视图”的用途是什么? - nonopolarity
网站可能会根据用户代理字符串区分IE7和IE8兼容模式。不同的模式将允许您查看在发送这两个字符串时网站可能具有的任何差异。 - Jake Petroules
“浏览器模式”只控制发送到服务器的字符串吗?它不会影响内容呈现的方式吗?文档模式在哪里发挥作用? - felickz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接