IE不兼容完美解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IE不兼容完美解决方案
2011年10月30日⁄编程知识⁄暂无评论
为什么微软IE8发布后,要求网站去做兼容了,要回答这个问题,我们就必须看看微软IE的发展历程,就不难明白其中的原因。微软的IE6是通过XP、Win2003等操作系统发布出来,作为占统治地位的桌面操作系统,也使得IE占据了统治地位,许多的网站开发的时候,就按照IE6的标准去开发,而IE6自身的标准也是微软公司内部定义的。到了IE7出来的时候,采用了微软公司内部标准以及部分W3C的标准,这个时候许多网站升级到IE7的时候,就比较痛苦,很多代码必须调整后,才能够正常的运行。而到了微软的IE8这个版本,基本上把微软内部自己定义的标准抛弃了,而全面的支持W3C的标准,由于基于对标准彻底的变化了,使得原先在早期IE8版本上能够访问的网站,在IE8中无法正常的访问,会出现一些排版错乱、文字重叠,显示不全等各种兼容性错误。这个时候就必需想办法使得旧有的网站能够兼容,保证这些网站能够得到正确的显示结果。
用户怎么办?
作为一般的用户,在查看某个网站时候,发现当前的页面有了不兼容的情况产生时,可以鼠标轻轻的点击地址栏右边的兼容性视图切换按钮,则可以在兼容性模式下查看当前网页。如果不想这么麻烦,可以直接打开“工具”—“兼容性视图设置”对话框,把本地IE8浏览器设置为“使用兼容模式来查看所有网站”,那么这个时候你访问网站的时候,都可以在兼容模式下显示站点内容了。
网站提供商怎么办
从网站的角度看来,必需要自身做到兼容,使得那些采用IE8标准模式来查看网站的用户也能够得到正确的显示结果,通过在网站中做一些设置,使得客户查看你的网站时候,能够自动以兼容模式显示。针对以上需求,搜集了众多的解决方案,针对新手也是一种不错的解决方案,但需求根本,样式还是要符合W3C 标准的,一下方案仅供大家参考。
第一种办法,是在单个的页面中,添加兼容性标记,示例代码如下:
程序代码
内容在此处。
在这里添加兼容性标签后,只对当前页面有用,而且必须是在head标签内部,同时也必须是在其他css样式定义或者链接的前面,否则不会产生效果的。(这个我已验证,效果比较明显,但花费的时间比较长,比较费精力,大家可以酌情
添加)。
第二种办法,就是在站点的配置文件中,修改web.config文件,使得该网站能够兼容,示例代码如下:
程序代码
第三种办法,就是在服务器级别对当前服务器做设置,使得服务器下面所有的站点都能够与IE8兼容性,这是推荐的做法,通过在服务器的配置花的时间最少,由于是整个服务器起作用,因此能很好的解决潜在的兼容性问题,具体设置可以参考以下资料介绍网站兼容的4个层次:
1、IIS,/zh-cn/library/cc817572.aspx
2、Apache,/zh-cn/library/cc817573.aspx
3、其他服务器,在后续的文章中会专门介绍一些主流的服务器中兼容性设置办法
IIS下如何解决:
指定自定义 HTTP 响应标头
使用 IIS Web 服务器为站点定义自定义标头即可为您的网站指定文本模式。若要使 Microsoft IIS 能够定义自定义 HTTP 响应标头以便所有页面自动以 EmulateIE7 模式呈现,您可以使用以下 web.config 示例。
程序代码
您也可以在基于 Windows Server 2008 的计算机上配置 IIS 7 以包含自定义HTTP 响应标头,步骤如下:
依次单击“开始”、“管理工具”,然后单击“Internet Information Services (IIS) 管理器”。
在“连接”窗格中,展开服务器的节点,然后展开“站点”。
单击要添加自定义 HTTP 响应标头的网站。
在网站窗格中,双击“IIS”部分中的“HTTP 响应标头”。
在“操作”下,单击“添加”。
在“名称”框中,键入“X-UA-Compatible”。在“值”框中,键入 IE=EmulateIE7。单击“确定”。若要将 IIS 6 及早期版本配置为包含自定义 HTTP 响应标头,请按照下列步骤进行操作:依次单击“开始”、“运行”,然后键入 inetmgr.exe 并单击“确定”。
展开所需服务器,然后展开“网站”。
右键单击所需网站,然后单击“属性”。
单击“HTTP 标头”选项卡。
在“自定义 HTTP 标头”下,单击“添加”。
在“自定义标头名称”框中,键入“X-UA-Compatible”。
在“自定义标头值”框中,键入“IE=EmulateIE7”。
单击“确定”两次。