再谈IE的浏览器模式和文档模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再谈IE的浏览器模式和文档模式相关的知识,希望对你有一定的参考价值。

 

 以前在 “IE8兼容视图(IE7 mode)与独立IE7的区别”一文中曾经涉及过浏览器模式和文档模式,但二者的区别却不甚了了,现在有了新的认识,再补充一下。

1.浏览器模式与文档模式概念

在较新的IE浏览器中(如IE8, IE9, IE10),为了解决兼容性的问题,引入了浏览器模式和文档模式两个概念,浏览网页时可以通过按F12键看到这两种模式。

 

浏览器模式的主要作用是为兼容较早版本的IE,它会控制浏览器发出的UserAgent,表示以哪个版本的浏览器发出请求,以此来允许为某个特定IE版本设计的代码正确执行(举例来说:有些代码真是判断ie版本的,还有css里也有判断ie版本的)。

 

文档模式的主要作用是影响浏览器显示网页html的方式,在接到返回的HTML文件后,决定以哪个IE版本的文档模式解析该页面(举例来说:JS脚本就是依赖文档模式,IE9的js变化就需要IE9文档模式来支持)。

2.如何使WebBrowser运行在IE9浏览器模式下

在安装了IE9的计算机上,Webbrowser并不是直接运行在IE9模式下,而是默认工作在IE9兼容视图(也就是IE7 Mode)下,为了让Webbrowser工作在IE9下,需要修改注册表,为应用程序指明使用IE9版本。

32位计算机需要修改注册表HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION,增加YourApplication.exe,值为十进制9999。

64位计算机需要修改注册表HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION,增加YourApplication.exe,值为十进制9999。

注意:9999最正确,9000则不推荐用,因为它不彻底。

3.如何使Htm页面使用IE9文档模式

如果htm页面中没有doctype,那么WebBrowser将不会使用IE9文档模式来解析页面(哪怕已经设置了注册表9999),而是仍沿用之前兼容旧版IE的 Quirks模来渲染,解释页面,JS脚本也将同样处置。这样的缺点是无法使用Html5新特性,优点是您的系统升级到IE9的兼容性改造工作将会大为减少。

修改Htm页面的方法之一是,在Head->Title下添加<META http-equiv="X-UA-Compatible" content="IE=9" > </META>,这样可确保HTM页面工作在IE9标准文档模式下。

 

注意:msdn上写的关于9999可以无视doctype而自动使页面运行在ie9文档模式的说法是错误的,这一点已经得到了权威的认可。

4.总结

欲使你的系统作为整体(包括WebBrowser和Htm页面)工作在IE9下,则以上2, 3两步均需遵守,缺一不可。

 

 

 

5.360极速模式和兼容模式的优先使用

 

<META http-equiv="X-UA-Compatible" content="IE=9;webkit|ie-comp|ie-stand " >

 

代码示例

在head标签中添加一行代码:

<html>
  <head>
    <meta name="renderer" content="webkit|ie-comp|ie-stand">
  </head>
  <body>
  </body>
</html>

 

content的取值为webkit,ie-comp,ie-stand之一,区分大小写,分别代表用webkit内核,IE兼容内核,IE标准内核。 
若页面需默认用极速核,增加标签:<meta name="renderer" content="webkit"> 
若页面需默认用ie兼容内核,增加标签:<meta name="renderer" content="ie-comp"> 
若页面需默认用ie标准内核,增加标签:<meta name="renderer" content="ie-stand">

以上是关于再谈IE的浏览器模式和文档模式的主要内容,如果未能解决你的问题,请参考以下文章

IE的浏览器模式和文档模式

IE兼容性:浏览器模式和文档模式

如何使浏览器打开时,默认的文档模式就是标准模式

X-UA-Compatible IE 浏览器默认文档模式设置

IE11打开某些网站,F12仿真模式中文档模式默认为IE7

如何强制 IE10 以 IE9 文档模式呈现页面