【发布时间】:2011-03-28 22:01:17
【问题描述】:
我正在查看 IE 9 开发人员工具,当我点击浏览器模式时,我得到一个列表
IE 7
IE 8
IE 9
IE 9 Compatibility View
那有什么作用? IE 9 和 IE 9 兼容性视图有什么区别?
【问题讨论】:
标签: internet-explorer internet-explorer-9
我正在查看 IE 9 开发人员工具,当我点击浏览器模式时,我得到一个列表
IE 7
IE 8
IE 9
IE 9 Compatibility View
那有什么作用? IE 9 和 IE 9 兼容性视图有什么区别?
【问题讨论】:
标签: internet-explorer internet-explorer-9
main 的区别在于 User-Agent 字符串。对于 Internet Explorer 9,发送 new and improved UA 字符串:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
为了兼容性视图,将发送类似于以下字符串的内容:
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)
注意兼容性视图 UA 字符串如何将浏览器标识为 MSIE 7.0?文档模式不足以让兼容性视图按预期工作。这样做的原因是,如果你仍然告诉 web 服务器你正在运行 IE 9,你就不能真正实现向后兼容——它可能有一些服务器端代码来识别 IE 7 浏览器并提供内容特定于该浏览器。因此,如果用户单击“兼容性视图”图标,开发者工具让您有机会查看网页的外观,而无需永久打开兼容性视图。
为了完整起见,还值得一提的是,应用程序版本字符串以类似的方式更改。 IE 9 的应用版本字符串为:
5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
在兼容性视图中(可能因安装的软件而异):
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)
这些字符串与 UA 字符串非常相似,但客户端脚本可能会引用此字符串而不是 UA 字符串。无论兼容模式如何,IE 9 仍然可以在 Trident/5.0 部分的 UA 字符串和应用程序版本字符串中识别。
【讨论】:
原则上,9 Compatibility View 是 MSIE 9 的特性,但备份了某些功能以兼容 MSIE 7。同样原则上,7 与 MSIE 7 相同,8 与 MSIE 8 相同。但是事实上,如果您切换到 7 并返回到 9 兼容性视图,它的行为与刚从 9 兼容性视图开始有所不同。此外,7 和原始 MSIE 7.0 之间存在显着差异。因此,不可能对您的问题给出清晰完整和准确的答案。
【讨论】: