一点一滴,编程人生

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  69 随笔 :: 0 文章 :: 25 评论 :: 0 Trackbacks

今天在做网页的时候发现一个问题:一个网页在ie 7下是白屏。我查看了源码,发现内容完好,并且ie6、其他的浏览器、以及非原生态的ie7(ieTester下)都没问题。

一开始我怀疑是页面结构问题等。在修改了css、js等后发现仍没有起色,疑惑间我想到是不是出了编码问题。毕竟编码问题经常会导致页面的解析错误。

最终发现:

如果你的编码信息在title之后就可能导致上述问题的发生:
<title>Long Step</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />

解决方式很简单,只要交换一下顺序
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<title>Long Step</title>

分析原因:

那么为什么只有ie7会出现这样的问题呢?这是由于ie7解析网页编码时以html内的标签优先,而后才是http header内的讯息,而mozilla系列的浏览器则刚刚相反。
由于utf-8编码的页面为3个字节表示一个汉字,而普通的gb2313或big5是两个。页面输出时,由于上述原因,使浏览器解析、输出<title></title>的内容时,如果在</title>前有奇数个全角字符时,ie7把utf-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的”<”结合成一个乱码字,导致ie7无法读完<title>部分,使整个页面为空百输出。而这个时候如果察看源文件的话,会发现实际上整个叶面全部已经输出了。
因此最简单的解决办法是在网页文件的<head></head>标签中一定要把字符定义<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />放在<title></title>之前。
实际上,其他编码版本的也存在类似的问题,只是我们大家的浏览器默认编码都是 GBK 所以更不容易被察觉罢了。

其实说到底,注意标签的顺序也是我们需要注意的好习惯。


转载链接:IE 7下页面白屏的解决方法
posted on 2009-11-08 18:19 writegull 阅读(494) 评论(0)  编辑  收藏 所属分类: IE

只有注册用户登录后才能发表评论。


网站导航: