META中X-UA-Compatible的用法

<meta http-equiv = "X-UA-Compatible" cotent = "IE=edge,chrome=1"/>

 

         这是个是IE8的专用标记,对于IE8以下的浏览器是不识别的,用来指定IE8浏览器去模拟某个特定版本的IE浏览器的渲染方式,以此来解决部分兼容问题,例如模拟IE7的具体方式如下:< meta http-equiv = "X-UA-Compatible" content = "IE=EmulateIE7" />但令我好奇的是,此处这个标记后面竟然出现了chrome这样的值,难道IE也可以模拟chrome了?迅速搜索了一下,才明白原来不是微软增强了IE,而是谷歌做了个外挂:Google Chrome Frame(谷歌内嵌浏览器框架GCF)。这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器,谷歌这个墙角挖的真给力!

         而上文提到的那个meta标记,则是在是安装了GCF后,用来指定页面使用chrome内核来渲染。安装完成后,如果你想对某个页面使用GCF进行渲染,只需要在该页面的地址前加上 gcf: 即可,例如: gcf:http://cooleep.com但是如果想要在开发时指定页面默认首先使用GCF进行渲染,如果未安装GCF再使用IE内核进行渲染,该如何进行呢? 就是使用这个标记。
标记用法:        阅读了下chrome的开发文档(http://www.chromium.org/developers/how-tos/chrome-frame-getting-started),下面来简单讲解一下这个标记的语法。

 

1.最基本的用法:在页面的头部加入

<meta http-equiv = "X-UA-Compatible" cotent = "IE=edge,chrome=1"/>

这样写可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果为安装GCF,则使用最高版本的IE内核进行渲染。

 

2.通过修改HTTP头文件的方法来实现让指定的页面使用GCF内核进行渲染:  在HTTP的头文件中加入以下信息:X-UA-Compatible: chrome=1 在Apache服务器中,确保 mod_headers 和 mod_setenvif文件可用,然后在httpd.conf中加入以下配置信息:

 Xml代码

1 <IfModule mod_setenvif.c>  
2 <IfModule mod_headers.c>  
3 BrowserMatch chromeframe gcf  
4 Header append X-UA-Compatible "chrome=1" env=gcf  
5 </IfModule >  
6 </IfModule >  

在IIS7或者更高版本的服务器中,只需要修改web.config文件,添加如下信息即可即可:

Xml代码
1 <span style="color: #000000;">< configuration >  
2 < system.webServer >  
3 < httpProtocol >  
4 < customHeaders >  
5 < add name = "X-UA-Compatible" value = "chrome=1" />  
6 </ customHeaders >  
7 </ httpProtocol >  
8 </ system.webServer >  
9 </ configuration ></span> 

原文地址:http://wenrunchang123.iteye.com/blog/1397507

如果每个页面都需要加,可以在服务器加,其中有一两个页面需要制定别的渲染模式时可以在其页面单独加

在网页中指定的模式优先权高于服务器中(通过HTTP Header)所指定的模式。 兼容性模式设置优先级

二、

<meta http-equiv="X-UA-Compatible" content="IE=7">  
#以上代码告诉IE浏览器,无论是否用DTD声明文档标准,IE8/9都会以IE7引擎来渲染页面。  
<meta http-equiv="X-UA-Compatible" content="IE=8">  
#以上代码告诉IE浏览器,IE8/9都会以IE8引擎来渲染页面。  
<meta http-equiv="X-UA-Compatible" content="IE=edge">  
#以上代码告诉IE浏览器,IE8/9及以后的版本都会以最高版本IE来渲染页面。  
<meta http-equiv="X-UA-Compatible" content="IE=7,IE=9">  
<meta http-equiv="X-UA-Compatible" content="IE=7,9">  
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
#以上代码IE=edge告诉IE使用最新的引擎渲染网页,chrome=1则可以激活Chrome Frame.

 IE文档兼容性模式所有可能的值:

Emulate IE8 mode #指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE8 Standards mode而quirks mode会显示成IE5 mode。不同于IE8 mode,Emulate IE8 mode重视<!DOCTYPE>指令。
Emulate IE7 mode #指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE7 Standards mode而quirks mode会显示成IE5 mode。不同于IE7 mode,Emulate IE7 mode重视<!DOCTYPE>指令。对于许多网页来说这是最推荐的兼容性模式。
IE5 mode #编译内容如同IE7的quirks mode之显示状况,和IE5中显示的非常类似。
IE7 mode #编译内容如同IE7的standards mode之显示状况,无论网页是否含有<!DOCTYPE>指令。
IE8 mode #提供对业界标准的最高支持,包含 W3C Cascading Style Sheets Level 2.1 Specification和W3C Selectors API,并有限的支持 W3C Cascading Style Sheets Level 3 Specification (Working Draft)。
Edge mode #指示IE以目前可用的最高模式显示内容。当使用IE8时其等同于IE8 mode。若(假定)未来放出支持更高兼容性模式的IE,使用Edge mode的页面会使用该版本能支持的最高模式来显示内容。同样的那些页面在使用IE8浏览时仍会照常显示。

注意事项:

1,根据官网定义X-UA-compatible 标头不区分大小写;不过,它必须显示在网页中除 title 元素和其他 meta 元素以外的所有其他元素之前。如果不是的话,它不起作用

2,content的内容是IE=8,或者IE=edge等值,注意不是IE8或者直接写个edge的值,否则不起作用

 原文链接:http://www.tuicool.com/articles/ra6Fjuj

 

posted @ 2016-10-20 10:49  nohuman  阅读(442)  评论(0)    收藏  举报