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文件,添加如下信息即可即可:
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

浙公网安备 33010602011771号