JavaScript高级程序设计之DOM 扩展之专有扩展之文档模式第11.4.1讲

虽然所有浏览器开发商都知晓坚持标准的重要性,但在发现某项功能缺失时,这些开发商都会一如
既往地向DOM 中添加专有扩展,以弥补功能上的不足。表面上看,这种各行其事的做法似乎不太好,
但实际上专有扩展为Web 开发领域提供了很多重要的功能,这些功能最终都在HTML5 规范中得到了标
准化。
即便如此,仍然还有大量专有的DOM 扩展没有成为标准。但这并不是说它们将来不会被写进标准,

而只是说在编写本书的时候,它们还是专有功能,而且只得到了少数浏览器的支持。

11.4.1文档模式
IE8 引入了一个新的概念叫“文档模式”(document mode)。页面的文档模式决定了可以使用什么功
能。换句话说,文档模式决定了你可以使用哪个级别的CSS,可以在JavaScript 中使用哪些API,以及
如何对待文档类型(doctype)。到了IE9,总共有以下4 种文档模式。
IE5:以混杂模式渲染页面(IE5 的默认模式就是混杂模式)。IE8 及更高版本中的新功能都无法
使用。
IE7:以IE7 标准模式渲染页面。IE8 及更高版本中的新功能都无法使用。
IE8:以IE8 标准模式渲染页面。IE8 中的新功能都可以使用,因此可以使用Selectors API、更多
CSS2 级选择符和某些CSS3 功能,还有一些HTML5 的功能。不过IE9 中的新功能无法使用。
IE9:以IE9 标准模式渲染页面。IE9 中的新功能都可以使用,比如ECMAScript 5、完整的CSS3
以及更多HTML5 功能。这个文档模式是最高级的模式。

要理解IE8 及更高版本的工作原理,必须理解文档模式。
要强制浏览器以某种模式渲染页面,可以使用HTTP 头部信息X-UA-Compatible,或通过等价的
<meta>标签来设置:

<meta http-equiv="X-UA-Compatible" content="IE=IEVersion">
注意,这里IE 的版本(IEVersion)有以下一些不同的值,而且这些值并不一定与上述4 种文档
模式对应。
Edge:始终以最新的文档模式来渲染页面。忽略文档类型声明。对于IE8,始终保持以IE8 标
准模式渲染页面。对于IE9,则以IE9 标准模式渲染页面。
EmulateIE9:如果有文档类型声明,则以IE9 标准模式渲染页面,否则将文档模式设置为IE5。
EmulateIE8:如果有文档类型声明,则以IE8 标准模式渲染页面,否则将文档模式设置为IE5。
EmulateIE7:如果有文档类型声明,则以IE7 标准模式渲染页面,否则将文档模式设置为IE5。
9:强制以IE9 标准模式渲染页面,忽略文档类型声明。
8:强制以IE8 标准模式渲染页面,忽略文档类型声明。
7:强制以IE7 标准模式渲染页面,忽略文档类型声明。
5:强制将文档模式设置为IE5,忽略文档类型声明。
比如,要想让文档模式像在IE7 中一样,可以使用下面这行代码:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
如果不打算考虑文档类型声明,而直接使用IE7 标准模式,那么可以使用下面这行代码:

<meta http-equiv="X-UA-Compatible" content="IE=7">
没有规定说必须在页面中设置X-UA-Compatible。默认情况下,浏览器会通过文档类型声明来确
定是使用最佳的可用文档模式,还是使用混杂模式。
通过document.documentMode 属性可以知道给定页面使用的是什么文档模式。这个属性是IE8
中新增的,它会返回使用的文档模式的版本号(在IE9 中,可能返回的版本号为5、7、8、9):

var mode = document.documentMode;
知道页面采用的是什么文档模式,有助于理解页面的行为方式。无论在什么文档模式下,都可以访
问这个属性。



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值