Internet explorer 8 IE8浏览器模式与文档模式

Internet explorer 8 IE8浏览器模式与文档模式,internet-explorer-8,ie8-browser-mode,Internet Explorer 8,Ie8 Browser Mode,有人能简单地解释一下IE8浏览器模式和文档模式之间的区别吗 是什么导致浏览器模式发生更改 是什么导致文档模式发生更改 如果用户通过开发人员工具更改模式,即使页面刷新,更改是否仍然存在 我问这个问题是因为我们正在做一些IE8测试,不同的人有不同的模式组合,我想试着弄清楚这是如何发生的。来自IE8博客,标题为《IE8如何确定文档模式》 开发人员工具设置覆盖选项卡中显示的页面的所有文档模式 除非X-UA-Compatible值为EmulateIE7或EmulateIE8,否则X-UA-Compat

有人能简单地解释一下IE8浏览器模式和文档模式之间的区别吗

  • 是什么导致浏览器模式发生更改
  • 是什么导致文档模式发生更改

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

我问这个问题是因为我们正在做一些IE8测试,不同的人有不同的模式组合,我想试着弄清楚这是如何发生的。

来自IE8博客,标题为《IE8如何确定文档模式》

  • 开发人员工具设置覆盖选项卡中显示的页面的所有文档模式
  • 除非X-UA-Compatible值为EmulateIE7或EmulateIE8,否则X-UA-Compatible元标记和标头将覆盖兼容性视图设置和doctype
  • 用户的兼容性视图设置覆盖Microsoft兼容性视图列表
  • 如果上述规则均不适用,则doctype将确定网页是以IE8标准、IE8几乎标准还是Quirks模式呈现
  • 因此,我们可以从中得到以下问题的答案:

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

    Q.是什么导致浏览器模式发生变化?
    A.用户在开发工具中更改浏览器模式

    Q.是什么导致文档模式发生变化?
    A.由web开发人员设置的Doctype和与X-UA兼容的元标记和头

    Q.如果用户通过开发人员工具更改模式,即使页面刷新,更改是否仍然存在?
    A.浏览器模式将保持不变,但如果更改Doctype和X-UA-Compatible,它们将返回页面上定义的模式

    更新:正如阿德里安·贝(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或后端代码根据用户代理字符串呈现不同,则可能会出现呈现差异。例如,您可能会看到检查
    navigator.userAgent
    的JavaScript。(Mozilla/5.0(兼容;MSIE 8.0…)此值也用于处理([如果lte IE 9],[如果gt IE 8]等)。IE 11中的仿真工具没有浏览器模式。它具有用户代理下拉列表

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

    测试: 如果您的目标是模拟旧的IE8浏览器,那么您应该同时更改浏览器模式和文档模式。模拟并不完美,因此更彻底的选择是,您可以在哪里使用“真实”版本的IE8、9等进行测试

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

    浏览器模式不会更改。(除非您在开发工具中更改)。它是在向web服务器发出请求之前设置的


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

    在IE开发工具->仿真(选项卡)的左上角有一个小按钮,上面写着“持久仿真设置”

    见:

    “设置持久性和重置
    将向仿真工具添加一个持久仿真设置图标。这将保持当前的仿真设置,直到专门禁用为止,从而允许您工作、关闭浏览器,并恢复仿真设置不变。其右侧是一个重置仿真设置图标,可快速将工具重置回默认值。“

    谢谢你的总结。这是我第一次看到这个图表。难怪我觉得我可能错过了一些东西。我还有更多的信息。我不太确定这个答案是否正确,因为它说“网页上定义了文档模式,告诉IE为了兼容性目的以不同的方式呈现网站”当它也可以在开发者工具中修改时(对于IE9和IE10,这是肯定的)。@AdrienBe他们在IE9.IE8的开发者工具中添加了更改文档模式的功能(这是问题的主题)在开发工具中没有文档模式切换。话虽如此,我将在底部添加一个脚注,因为这个问题仍然会从可能对IE9+感到好奇的人那里获得相当多的流量。也请看,所有这些文档模式的事情似乎毫无意义。例如,在开发工具中,我可以使用设置IE9的文档模式IE8的浏览器模式。为什么不让我们只修改浏览器模式?@AdrienBe在此之前,你发现IE中的很多东西都是有意义的吗?请对图表投赞成票。否则的话,要想弄清楚就太复杂了。