定义文档兼容性,让IE按照指定的浏览器版本解析页面

来源:互联网 发布:微屏软件科技有限公司 编辑:程序博客网 时间:2024/05/29 07:41

定义文档兼容性,让IE按照指定的浏览器版本解析页面

文档兼容性是对 Microsoft Internet Explorer 6 中引入的兼容性模式的扩展,使您可以选择 Internet Explorer 用于显示网页的特定呈现模式。——微软的官方文档。

在这里先介绍两个概念:浏览器模式(browser mode)和文档模式(document mode)。这两个模式的引入,让我们在IE浏览器上能够简单的处理兼容性问题,当然,其实也并不简单,先看看这两个概念的定义:

  浏览器模式(browser mode):于切换IE针对该网页的默认文档模式、对不同版本浏览器的条件备注解析、发送给网站服务器的用户代理(User-Agent)字符串的值。网站可以根据浏览器返回的不同用户代理字符串判断浏览器的版本和安装的功能,这样就可以向不同的浏览器返回不同的页面内容。

  默认情况下,IE8的浏览器模式为IE8。用户可以通过单击地址栏旁边的兼容性视图按钮来手动切换到不同的浏览器模式。在IE8中,IE8兼容性视图会以IE7文档模式来显示网页,同时会向服务器发送IE7的用户代理字符串。

  文档模式(document mode):用于指定IE的页面排版引擎(Trident)以哪个版本的方式来解析并渲染网页代码。切换文档模式会导致网页被刷新,但不会更改用户代理字符串中的版本号,也不会从服务器重新下载网页。切换浏览器模式的同时,浏览器也会自动切换到相应的文档模式。

  简而言之:浏览器模式的改变,能够改变请求中User Agent的值,让服务器获取后,能够按照UA的值进行对应处理(如果服务器上有这个处理功能)。而文档模式的改变只反映在本地的浏览器解析HTML上,对客户端显示会有影响,而对服务器透明。同时,修改浏览器模式会影响文档模式,反之却不成立。

简而言之:浏览器模式的改变,能够改变请求中User Agent的值,让服务器获取后,能够按照UA的值进行对应处理(如果服务器上有这个处理功能)。而文档模式的改变只反映在本地的浏览器解析HTML上,对客户端显示会有影响,而对服务器透明。同时,修改浏览器模式会影响文档模式,反之却不成立。

  使用文档兼容性的方法比较容易,就是在我们要反馈给客户端的HTML代码中的head中添加一个meta元素,用来描述当前的文档需要使用何种浏览器版本来解释当前文档,代码类似下面这样:

例如:

1
2
3
4
5
6
7
8
9
10
<html>
<head>
<!-- Mimic Internet Explorer 7 -->
<metahttp-equiv="X-UA-Compatible"content="IE=EmulateIE7">
<title>测试模拟IE7浏览模式</title>
</head>
<body>
<!--这里是你网站的内容-->
</body>
</html>

X-UA-compatible在使用中,大小写不敏感,如果你需要客户端模拟其他的浏览器版本来解析文档你可以设置为对应的版本即可,通常的设置有如下几种:

X-UA-Compatible

说明

IE=5

让浏览器使用Quirks mode来显示,实际上是使用Internet Explorer 7 Quirks模式来显示内容,这个模式和IE5非常相似。

IE=edge

这个设置是让IE使用当前的最高版本进行文档的解析,官方文档指明,edge模式仅适用在测试环境,不建议在生产环境中使用

IE=7

使用标准IE7来处理

IE=EmulateIE7

模拟IE7来处理,遵循 <!DOCTYPE> 指令,如果文档有当前有一个合法的<!DOCTYPE>,就使用IE7模式,否者使用Quirks模式(Internet Explorer 5 Quirks),对于大部分网站来说,这是首选的兼容性模式

IE=8

标准IE8

IE=EmulateIE8

模拟IE8,遵循 <!DOCTYPE> 指令,参照IE=EmulateIE7说明

IE=9

标准IE9

IE=EmulateIE9

模拟IE9,遵循 <!DOCTYPE> 指令,参照IE=EmulateIE7说明

chrome=1

强制使用Chrome,需要IEChrome插件支持

IE=EmulateIE10

模拟IE10

IE=10

标准IE10,遵循 <!DOCTYPE> 指令,参照IE=EmulateIE7说明

X-UA-Compatible

说明

IE=5

让浏览器使用Quirks mode来显示,实际上是使用Internet Explorer 7 Quirks模式来显示内容,这个模式和IE5非常相似。

IE=edge

这个设置是让IE使用当前的最高版本进行文档的解析,官方文档指明,edge模式仅适用在测试环境,不建议在生产环境中使用

IE=7

使用标准IE7来处理

IE=EmulateIE7

模拟IE7来处理,遵循 <!DOCTYPE> 指令,如果文档有当前有一个合法的<!DOCTYPE>,就使用IE7模式,否者使用Quirks模式(Internet Explorer 5 Quirks),对于大部分网站来说,这是首选的兼容性模式

IE=8

标准IE8

IE=EmulateIE8

模拟IE8,遵循 <!DOCTYPE> 指令,参照IE=EmulateIE7说明

IE=9

标准IE9

IE=EmulateIE9

模拟IE9,遵循 <!DOCTYPE> 指令,参照IE=EmulateIE7说明

chrome=1

强制使用Chrome,需要IEChrome插件支持

IE=EmulateIE10

模拟IE10

IE=10

标准IE10,遵循 <!DOCTYPE> 指令,参照IE=EmulateIE7说明


0 0
原创粉丝点击