兼容利器之X-UA-Compatible

简介: 文档兼容模式 不同浏览器之间经常产生各种奇异的现象,为了解决这些问题,使用以下方法,发现很多问题自动消失不见了 这是一个,文档兼容模式的定义。 Edge 模式告诉 IE 以最高级模式渲染文档,也就是任何 IE 版本都以当前版本所支持的最高级标准模式渲染,避免版本升级造成的影响。

文档兼容模式

不同浏览器之间经常产生各种奇异的现象,为了解决这些问题,使用以下方法,发现很多问题自动消失不见了

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
这是一个,文档兼容模式的定义。 Edge 模式告诉 IE 以最高级模式渲染文档,也就是任何 IE 版本都以当前版本所支持的最高级标准模式渲染,避免版本升级造成的影响。
简单的说,就是什么版本 IE 就用什么版本的标准模式渲染 <meta http-equiv="X-UA-Compatible" content="IE=edge">
使用以下代码强制 IE 使用 Chrome Frame 渲染 <meta http-equiv="X-UA-Compatible" content="chrome=1">
提示 IE 用户安装 Google Frame Google 官方提供了对 Google Frame 插件安装情况的检测,这里直接调用方法即可,如果检测到 IE 并未安装 Google Frame,则弹出对话框提示安装。
<script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script><script>CFInstall.check();</script>
最佳的兼容模式方案,结合考虑以上两种: <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  Google Chrome Frame

Google开发的一个Google Chrome Frame「Google Chrome 浏览器内嵌框架 – GCF」。使用GCF可以让用户的IE浏览器外观不变,但用户在浏览网页时实际上使用的是Chrome的内核,并且支持Windows XP及以上系统的IE6/7/8。

 

官方对其定义:

 

  • 可使用开放式网络技术(如 HTML5 canvas 标记)立即启动,甚至包括 Internet Explorer 6、7 或 8 尚不支持的技术。
  • 利用 JavaScript 性能增强功能,使应用程序速度更快,响应更灵敏。

  w3.org的html5验证

然而,下一个问题又来了,在w3.org的html5验证工具下:

 HTML5 Validator Error “Bad value X-UA-Compatible for attribute http-equiv on element meta

w3-org-validation-output-error

介个也好解决,针对三种主流服务器,我们都可以在服务器端配置http equiv规则:

  1、apache服务器

确保 mod_headers 和 mod_setenvif 是available的,然后在httpd.conf「新版Apache的配置文件是 apache2.conf」或者在.htaccess中加入以下规则:

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>

  2、Windows Server在IIS7或者更高版本的服务器

只需要修改web.config文件,添加如下信息即可:

01. <configuration>
02. <system.webServer>
03. <httpProtocol>
04. <customHeaders>
05. <add name = "X-UA-Compatible" value = "chrome=1" />
06. </customHeaders>
07. </httpProtocol>
08. </system.webServer>
09. </configuration>

  3、Nginx服务器

只需要找到ginx.conf并编辑,在server { }区域里(最好是闭合符前面起一行)添加下列代码即可:

1. add_header "X-UA-Compatible" "IE=Edge, chrome=1";

  总结

  1. 如果支持Google Chrome Frame:GCF,则使用GCF渲染;
  2. 如果系统安装ie8或以上版本,则使用最高版本ie渲染;
  3. 否则,这个设定可以忽略。

极速模式

最近用360浏览器访问自己的网站,发现都是被优先选用兼容模式打开,这使得网站很难看。为了让360浏览器打开网站的时候优先试用极速模式,找了一下官方论坛,发现了解决方案。

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

 <meta name="renderer" content="webkit|ie-comp|ie-stand">

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"> 

 

原文地址:http://se.360.cn/v6/help/meta.html

 

ie10 兼容性调整之滚动条

因为微软要兼容触摸屏 所以滚动条是必须要修正的 触摸屏上滚动条不以鼠标滚轮为触发

所以ie10下凡是以前没有显示声明scroll-y的 现在必须显示的做出滚动条声明

比如lightbox的父级容器就必须在_finish处理函数中添加 

$('#container').css({'overflow-y':'scroll'});

以达到显示声明的目的.

较为通用的解决办法是: -ms-overflow-style: scrollbar;/*auto | none | scrollbar | -ms-autohiding-scrollbar*/

 


参考文章:

http://ziren.org/html-css/content-ie-edge-chrome-1-introduction-web-page-using-chrome-rendering.html

http://www.cnblogs.com/huangcong/p/3870276.html

http://blog.csdn.net/kkun/article/details/23888281

https://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh771902.aspx

 

相关文章
|
7月前
如何在edge上安装拓展weTab
如何在edge上安装拓展weTab
118 0
|
7月前
|
Web App开发 搜索推荐 算法
Edge插件推荐
Edge插件推荐
162 0
解决Edge不兼容onpropertychange的方法
解决Edge不兼容onpropertychange的方法
161 0
|
算法框架/工具 PyTorch Python
Meta2032系统开发(详细及程序)丨Meta2032开发源码版
 Web 3.0 promotes the implementation of distributed economic models such as NFT,Defi,cryptocurrencies,and decentralized autonomous organizations(DAOs).The feature of Web 3.0 co construction and sharing is different from that of Web 2.0 where users are only users,enabling users in Web 3.0 to actively
|
安全 vr&ar 关系型数据库
Meta2032开发功能丨Meta2032系统开发(开发详细)丨Meta2032系统源码部署
 Web 3.0 infrastructure mainly includes node infrastructure, storage, oracle machines, security audits, data analysis platforms, wallets, development tools, etc. For example, the storage of assets on the wallet service user chain is an important entry point for Web 3.0, such as Metamarsk (Cryptocurr
|
前端开发 Windows
【BootStrap】<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 的说明
【BootStrap】<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 的说明
228 0
【BootStrap】<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 的说明
|
Web App开发 Windows 前端开发
对http-equiv中"X-UA-Compatible"属性的理解
X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的。 通过在meta中设置X-UA-Compatible的值,可以指定网页的兼容性模式设置。
2836 0