网站与IE8不兼容的解决

为什么不兼容性

为什么微软IE8发布后,要求网站去做兼容了,要回答这个问题,我们就必须看看微软IE的发展历程,就不难明白其中的原因。微软的IE6是通过XP、Win2003等操作系统发布出来,作为占统治地位的桌面操作系统,也使得IE占据了通知地位,许多的网站开发的时候,就按照IE6的标准去开发,而IE6自身的标准也是微软公司内部定义的。到了IE7出来的时候,采用了微软公司内部标准以及部分W3C的标准,这个时候许多网站升级到IE7的时候,就比较痛苦,很多代码必须调整后,才能够正常的运行。而到了微软的IE8这个版本,基本上把微软内部自己定义的标准抛弃了,而全面的支持W3C的标准,由于基于对标准彻底的变化了,使得原先在早期IE8版本上能够访问的网站,在IE8中无法正常的访问,会出现一些排版错乱、文字重叠,显示不全等各种兼容性错误。这个时候就必需想办法使得旧有的网站能够兼容,保证这些网站能够得到正确的显示结果。

用户怎么办?

作为一般的用户,在查看某个网站时候,发现当前的页面有了不兼容的情况产生时,可以鼠标轻轻的点击地址栏右边的兼容性视图切换按钮,则可以在兼容性模式下查看当前网页。如果不想这么麻烦,可以直接打开“工具”—“兼容性视图设置”对话框,把本地IE8浏览器设置为“使用兼容模式来查看所有网站”,那么这个时候你访问网站的时候,都可以在兼容模式下显示站点内容了。

网站提供商怎么办

从网站的角度看来,必需要自身做到兼容,使得那些采用IE8标准模式来查看网站的用户也能够得到正确的显示结果,通过在网站中做一些设置,使得客户查看你的网站时候,能够自动以兼容模式显示。

第一种办法,是在单个的页面中,添加兼容性标记,示例代码如下:

1 <html>
2 <head>
3 <!-- Mimic Internet Explorer 7 -->
4 <title>我的网页</title>
5 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
6 </head>
7 <body>
8 <p>内容在此处。</p>
9 </body>
10 </html>
11

在这里添加兼容性标签后,只对当前页面有用,而且必须是在head标签内部,同时也必须是在其他css样式定义或者链接的前面,否则不会产生效果的。

第二种办法,就是在站点的配置文件中,修改web.config文件,使得该网站能够兼容,示例代码如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <configuration>
3 <system.webServer>
4 <httpProtocol>
5 <customHeaders>
6 <clear />
7 <add name="X-UA-Compatible" value="IE=EmulateIE7">
8 </customHeaders>
9 </httpProtocol>
10 <system.webServer>
11 </configuration>
12

第三种办法,就是在服务器级别对当前服务器做设置,使得服务器下面所有的站点都能够与IE8兼容性,这是推荐的做法,通过在服务器的配置花的时间最少,由于是整个服务器起作用,因此能很好的解决潜在的兼容性问题,具体设置可以参考以下资料介绍网站兼容的4个层次:

1、IIS,http://msdn.microsoft.com/zh-cn/library/cc817572.aspx

2、Apache,http://msdn.microsoft.com/zh-cn/library/cc817573.aspx

3、其他服务器,在后续的文章中会专门介绍一些主流的服务器中兼容性设置办法

微软怎么办?

作为微软公司说来,维护了一个“兼容性视图”列表,把目前没有兼容的网站放置到里面,只要用户同意接受来自微软公司更新的兼容性视图网站,那么则能够得到正确的结果。如果大家需要查看自己的网站是否在兼容性视图中,可以在IE8浏览器到地址栏里面,输入“res://iecompat.dll/iecompatdata.xml”来查看。会得到一个如下图所示的兼容性视图网站列表:

 

为什么不兼容性

为什么微软IE8发布后,要求网站去做兼容了,要回答这个问题,我们就必须看看微软IE的发展历程,就不难明白其中的原因。微软的IE6是通过XP、Win2003等操作系统发布出来,作为占统治地位的桌面操作系统,也使得IE占据了通知地位,许多的网站开发的时候,就按照IE6的标准去开发,而IE6自身的标准也是微软公司内部定义的。到了IE7出来的时候,采用了微软公司内部标准以及部分W3C的标准,这个时候许多网站升级到IE7的时候,就比较痛苦,很多代码必须调整后,才能够正常的运行。而到了微软的IE8这个版本,基本上把微软内部自己定义的标准抛弃了,而全面的支持W3C的标准,由于基于对标准彻底的变化了,使得原先在早期IE8版本上能够访问的网站,在IE8中无法正常的访问,会出现一些排版错乱、文字重叠,显示不全等各种兼容性错误。这个时候就必需想办法使得旧有的网站能够兼容,保证这些网站能够得到正确的显示结果。

用户怎么办?

作为一般的用户,在查看某个网站时候,发现当前的页面有了不兼容的情况产生时,可以鼠标轻轻的点击地址栏右边的兼容性视图切换按钮,则可以在兼容性模式下查看当前网页。如果不想这么麻烦,可以直接打开“工具”—“兼容性视图设置”对话框,把本地IE8浏览器设置为“使用兼容模式来查看所有网站”,那么这个时候你访问网站的时候,都可以在兼容模式下显示站点内容了。

网站提供商怎么办

从网站的角度看来,必需要自身做到兼容,使得那些采用IE8标准模式来查看网站的用户也能够得到正确的显示结果,通过在网站中做一些设置,使得客户查看你的网站时候,能够自动以兼容模式显示。

第一种办法,是在单个的页面中,添加兼容性标记,示例代码如下:

1 <html>
2 <head>
3 <!-- Mimic Internet Explorer 7 -->
4 <title>我的网页</title>
5 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
6 </head>
7 <body>
8 <p>内容在此处。</p>
9 </body>
10 </html>
11

在这里添加兼容性标签后,只对当前页面有用,而且必须是在head标签内部,同时也必须是在其他css样式定义或者链接的前面,否则不会产生效果的。

第二种办法,就是在站点的配置文件中,修改web.config文件,使得该网站能够兼容,示例代码如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <configuration>
3 <system.webServer>
4 <httpProtocol>
5 <customHeaders>
6 <clear />
7 <add name="X-UA-Compatible" value="IE=EmulateIE7">
8 </customHeaders>
9 </httpProtocol>
10 <system.webServer>
11 </configuration>
12

第三种办法,就是在服务器级别对当前服务器做设置,使得服务器下面所有的站点都能够与IE8兼容性,这是推荐的做法,通过在服务器的配置花的时间最少,由于是整个服务器起作用,因此能很好的解决潜在的兼容性问题,具体设置可以参考以下资料介绍网站兼容的4个层次:

1、IIS,http://msdn.microsoft.com/zh-cn/library/cc817572.aspx

2、Apache,http://msdn.microsoft.com/zh-cn/library/cc817573.aspx

3、其他服务器,在后续的文章中会专门介绍一些主流的服务器中兼容性设置办法

微软怎么办?

作为微软公司说来,维护了一个“兼容性视图”列表,把目前没有兼容的网站放置到里面,只要用户同意接受来自微软公司更新的兼容性视图网站,那么则能够得到正确的结果。如果大家需要查看自己的网站是否在兼容性视图中,可以在IE8浏览器到地址栏里面,输入“res://iecompat.dll/iecompatdata.xml”来查看。会得到一个如下图所示的兼容性视图网站列表:

image

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值