IE8浏览器模式与文档模式

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

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

  • 如果用户通过开发人员工具更改模式,即使刷新页面,更改是否仍然存在?

我问这是因为我们在这里做一些IE8testing,而不同的人有不同的模式组合,我想弄清楚这是怎么发生的。

从IE8博客上的这篇文章 ,题为“ 如何IE8确定文档模式”

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

所以从这里我们得到以下答案你的问题:

问: 简单来说,浏览器模式和文档模式有什么区别?
A.在开发者工具中设置浏览器模式以模拟不同的IE浏览器版本行为,同时在网页上定义文档模式以告知IE为了兼容目的而不同地呈现站点。

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

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

问: 如果用户通过开发人员工具更改模式,即使刷新页面,更改是否仍然存在?
:浏览器模式将保留,但如果您更改了Doctype和X-UA兼容,他们将返回页面上定义的内容。

更新:正如Adrien Be指出的那样,IE9 +增加了在开发工具中通过一个刷新持续的设置来改变文档模式的能力。

在这个页面上看到你的答案。

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模式下呈现页面!

文档模式选择过程的图表

浏览器模式 :指定浏览器发送到Web服务器的用户代理 。 如果您的JavaScript或后端代码根据用户代理string呈现不同,则可能会出现渲染差异。 例如,您可能会看到检查navigator.userAgent JavaScript。 (Mozilla / 5.0(compatible; MSIE 8.0 …)该值也用于处理条件注释 ([if IE ie 9],[if IE IE 8]等)IE 11中的仿真工具有一个浏览器模式,它有一个用户代理下拉菜单。

文档模式 :指定用于处理标记的呈现引擎。 这通常是我们看到渲染问题和浏览器不兼容的地方。 最初的目标(好或坏)是网站所有者可以通过meta标签为他们的网站select文档模式。 在IE 11中,仿真工具不那么容易混淆。

testing :如果您的目标是模拟旧的IE8浏览器,则应该更改浏览器模式和文档模式。 仿真并不完美,所以更彻底的select是从Microsoft下载免费的testing虚拟机 ,您可以使用真正的IE 8,9等版本进行testing。

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

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

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

在左上angular有一个小button,在IE开发工具 – >模拟(标签),说“持续模拟设置”

看到这个 :

设置持久性和重置持久性仿真设置图标被添加到仿真工具,这将保持您当前的仿真设置,直到被禁用,允许您工作,closures浏览器,并返回您的仿真设置完好无损。一个复位仿真设置图标,可以快速将工具重置为默认值。