IE8浏览器模式与文档模式


72

有人可以简单解释一下IE8浏览器模式文档模式之间的区别吗?

  • 是什么导致浏览器模式改变?
  • 是什么导致文档模式改变?

  • 如果用户通过开发人员工具更改了模式,即使刷新页面也不会保留更改吗?

我之所以这样问是因为我们正在这里进行一些IE8测试,并且不同的人具有不同的模式组合,我想尝试弄清楚这是怎么发生的。



1
所有这些文档模式的东西似乎根本没有任何意义。例如,在开发工具中,我可以将IE9的文档模式设置为IE8的浏览器模式。为什么不让我们仅修改浏览器模式?
Adrien Be

5
@AdrienBe,您是否发现IE中的很多事情在经历之前是有意义的?
mkoryak

Answers:


69

摘自IE8博客上的这篇文章,标题为IE8如何确定文档模式

  1. 开发人员工具设置会覆盖选项卡中显示页面的所有文档模式。
  2. 除非X-UA-Compatible值为EmulateIE7或EmulateIE8,否则X-UA-Compatible元标记和标题将覆盖“兼容性视图设置”和doctype。
  3. 用户的“兼容性视图设置”将覆盖“ Microsoft兼容性视图列表”。
  4. 如果以上规则均不适用,则文档类型将确定网页是以IE8标准,IE8几乎标准还是怪癖模式呈现的。

因此,我们将为您的问题提供以下答案:

问: 简单地说,浏览器模式和文档模式有什么区别?
答:在开发人员工具中设置了浏览器模式,以模仿不同的IE浏览器版本行为,同时在网页上定义了文档模式,以告诉IE为了兼容性目的以不同的方式呈现网站。

问: 是什么导致浏览器模式改变?
:用户在开发工具中更改浏览器模式。

问: 是什么导致文档模式更改?
A. Web开发人员设置的Doctype和X-UA-Compatible元标记和标头。

问: 如果用户通过开发人员工具更改了模式,即使刷新页面也不会保留更改吗?
:浏览器模式将保留,但是如果您更改Doctype和X-UA-Compatible,它们将返回到页面上定义的状态。

更新:正如Adrien Be在下面指出的那样,IE9 +通过在刷新后保持不变的设置添加了在开发工具中更改文档模式的功能。


感谢您的总结。香港专业教育学院第一次见到该图..怪不得我觉得自己可能错过了一些东西。
mkoryak 2010年


如果也可以在开发人员工具中进行修改(对于IE9和IE10可以肯定的话),则不太确定此答案是否正确,因为它说“在网页上定义了文档模式,以指示IE出于兼容性目的而使网站呈现不同的外观”无论如何)。
Adrien Be

@AdrienBe他们在IE9的开发工具中添加了更改文档模式的功能。IE8(这是问题的主题)在开发工具中没有文档模式切换。话虽如此,我将在底部添加一个脚注,因为该问题仍然受到可能怀疑IE9 +的人们的大量访问。
Bradley Mountford 2013年

16

此页面中查看答案。

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模式渲染页面!

文档模式选择过程图


支持该图。要弄清楚的话主要是很复杂的。
jvenema

2

浏览器模式:指定浏览器发送到Web服务器的用户代理。如果您的JavaScript或后端代码基于用户代理字符串的呈现方式不同,则呈现差异可能会发生。例如,您可能会看到检查的JavaScript navigator.userAgent。(Mozilla / 5.0(兼容; MSIE 8.0 ...)。此值还用于处理条件注释([如果是IE 9],[如果是gt 8],等等。)IE 11中的仿真工具不具有浏览器模式,而是具有用户代理下拉列表。

文档模式:指定用于处理标记的渲染引擎。通常,这是我们看到渲染问题和浏览器不兼容的地方。最初的目标(是好是坏)是网站所有者可以通过元标记为其网站选择文档模式。在IE 11中,仿真工具不那么令人困惑。

测试:如果你的目标是效仿老IE8浏览器,你应该改变这两个浏览器模式和文档模式。仿真不是完美的,因此一个更彻底的选择是从Microsoft下载免费的测试VM,您可以在其中使用IE 8、9等的“真实”版本进行测试。

是什么导致这些值发生变化?

浏览器模式不会改变。(除非您在Dev工具中对其进行了更改。)在向Web服务器发出请求之前将其设置。

可以根据Web服务器的响应来更改文档模式。可以通过与X-UA兼容的HTTP响应标头,文档类型,元标记,内联网站点,标记问题等进行更改。


0

在IE开发人员工具->仿真(选项卡)的左上角有一个小按钮,上面写着“ Persist emulation settings”。

看到这个

设置持久性和重置持久仿真设置图标已添加到仿真工具中。这将保持您当前的仿真设置,直到被专门禁用为止,使您可以工作,关闭浏览器并返回原来的仿真设置。其右侧是“重置仿真设置”图标,该图标可将工具快速重置为默认值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.