有人可以用简单的术语解释IE8 浏览器模式和文档模式之间的区别吗?
导致文档模式更改的原因是什么?
如果用户通过开发者工具更改了模式,即使刷新页面,更改是否仍然存在?
我问这个是因为我们在这里做了一些IE8测试,不同的人有不同的模式组合,我想弄清楚这是怎么回事。
答案 0 :(得分:69)
来自IE8博客上的this article,标题为 IE8如何确定文档模式
因此,我们会从您的问题中获得以下答案:
问。 简单来说,浏览器模式和文档模式有什么区别?
A。浏览器模式在开发人员工具中设置,以模拟不同的IE浏览器版本行为,同时在网页上定义文档模式,以告知IE为了兼容性而以不同方式呈现网站。
问。 导致浏览器模式改变的原因是什么?
A. 用户在开发工具中更改浏览器模式。
问。 导致文档模式更改的原因是什么?
A。 Web开发人员设置的Doctype和X-UA兼容元标记和标题。
问。 如果用户通过开发人员工具更改了模式,即使刷新页面,更改是否仍然存在?
A。浏览器模式将保留,但如果您更改了Doctype和X-UA-Compatible,它们将返回到页面上定义的内容。
更新:正如Adrien Be指出的那样,IE9 +增加了通过设置更改开发工具中的文档模式的功能,该设置将在刷新时保留。
答案 1 :(得分:16)
在this page中查看答案。
documentMode
属性返回浏览器用于呈现当前文档的模式。
IE8可以以不同的模式呈现页面,具体取决于!DOCTYPE
或某些HTML元素的存在。
此属性返回以下值之一:
5 - The page is displayed in IE5 mode
7 - The page is displayed in IE7 mode
8 - The page is displayed in IE8 mode
9 - The page is displayed in IE9 mode
注意:如果未指定!DOCTYPE
,则IE8以IE5模式呈现页面!
答案 2 :(得分:2)
浏览器模式:指定浏览器发送到Web服务器的用户代理。如果您的JavaScript或后端代码根据用户代理字符串呈现不同,则可能会出现渲染差异。例如,您可能会看到检查navigator.userAgent
的JavaScript。 (Mozilla / 5.0(兼容; MSIE 8.0 ...)此值还用于处理conditional comments([if IE IE 9],[if gt IE 8]等。)IE中的仿真工具11没有浏览器模式。它有一个用户代理下拉列表。
文档模式:指定用于处理标记的呈现引擎。这通常是我们看到渲染问题和浏览器不兼容的地方。最初的目标(无论好坏)是网站所有者可以通过元标记为其网站选择文档模式。在IE 11中,仿真工具不那么容易混淆。
<强>测试强>: 如果您的目标是模拟旧的IE8浏览器,则应更改两种浏览器模式和文档模式。仿真并不完美,因此更加彻底的选择是download free test VMs from Microsoft,您可以使用IE 8,9等的*真实版本进行测试。
导致这些值发生变化的原因是什么?
浏览器模式不会改变。 (除非您在Dev工具中更改它。)在向Web服务器发出请求之前设置它。
文档模式可以根据Web服务器响应进行更改。它可以通过X-UA兼容的HTTP响应头,doc类型,元标记,Intranet站点,标记问题等进行更改。
答案 3 :(得分:0)
在IE开发工具的左上方有一个小按钮 - &gt;模拟(选项卡),显示“持久模拟设置”
请参阅this:
“设置持久性和重置 “持久仿真”设置图标将添加到“仿真”工具中。这将保持您当前的仿真设置,直到被特别禁用,允许您工作,关闭浏览器,并返回完整的仿真设置。右侧是重置仿真设置图标,可快速将工具重置为默认值。“