一點(diǎn)一滴,編程人生

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            69 隨筆 :: 0 文章 :: 25 評(píng)論 :: 0 Trackbacks

          今天在做網(wǎng)頁(yè)的時(shí)候發(fā)現(xiàn)一個(gè)問(wèn)題:一個(gè)網(wǎng)頁(yè)在ie 7下是白屏。我查看了源碼,發(fā)現(xiàn)內(nèi)容完好,并且ie6、其他的瀏覽器、以及非原生態(tài)的ie7(ieTester下)都沒(méi)問(wèn)題。

          一開(kāi)始我懷疑是頁(yè)面結(jié)構(gòu)問(wèn)題等。在修改了css、js等后發(fā)現(xiàn)仍沒(méi)有起色,疑惑間我想到是不是出了編碼問(wèn)題。畢竟編碼問(wèn)題經(jīng)常會(huì)導(dǎo)致頁(yè)面的解析錯(cuò)誤。

          最終發(fā)現(xiàn):

          如果你的編碼信息在title之后就可能導(dǎo)致上述問(wèn)題的發(fā)生:
          <title>Long Step</title>
          <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />

          解決方式很簡(jiǎn)單,只要交換一下順序
          <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
          <title>Long Step</title>

          分析原因:

          那么為什么只有ie7會(huì)出現(xiàn)這樣的問(wèn)題呢?這是由于ie7解析網(wǎng)頁(yè)編碼時(shí)以html內(nèi)的標(biāo)簽優(yōu)先,而后才是http header內(nèi)的訊息,而mozilla系列的瀏覽器則剛剛相反。
          由于utf-8編碼的頁(yè)面為3個(gè)字節(jié)表示一個(gè)漢字,而普通的gb2313或big5是兩個(gè)。頁(yè)面輸出時(shí),由于上述原因,使瀏覽器解析、輸出<title></title>的內(nèi)容時(shí),如果在</title>前有奇數(shù)個(gè)全角字符時(shí),ie7把utf-8當(dāng)作兩個(gè)字節(jié)解析時(shí)出現(xiàn)半個(gè)漢字的情況,這時(shí)該半個(gè)漢字會(huì)和</title>的”<”結(jié)合成一個(gè)亂碼字,導(dǎo)致ie7無(wú)法讀完<title>部分,使整個(gè)頁(yè)面為空百輸出。而這個(gè)時(shí)候如果察看源文件的話,會(huì)發(fā)現(xiàn)實(shí)際上整個(gè)葉面全部已經(jīng)輸出了。
          因此最簡(jiǎn)單的解決辦法是在網(wǎng)頁(yè)文件的<head></head>標(biāo)簽中一定要把字符定義<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />放在<title></title>之前。
          實(shí)際上,其他編碼版本的也存在類(lèi)似的問(wèn)題,只是我們大家的瀏覽器默認(rèn)編碼都是 GBK 所以更不容易被察覺(jué)罷了。

          其實(shí)說(shuō)到底,注意標(biāo)簽的順序也是我們需要注意的好習(xí)慣。


          轉(zhuǎn)載鏈接:IE 7下頁(yè)面白屏的解決方法
          posted on 2009-11-08 18:19 writegull 閱讀(510) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): IE

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 新巴尔虎右旗| 西乡县| 长宁县| 江津市| 镇远县| 林口县| 三原县| 泗水县| 长宁县| 若尔盖县| 阿勒泰市| 丰原市| 同心县| 台中市| 琼中| 盐津县| 苍山县| 葫芦岛市| 汤阴县| 阳泉市| 周至县| 电白县| 白山市| 华宁县| 克东县| 于田县| 内乡县| 湟源县| 民县| 景泰县| 休宁县| 墨玉县| 安阳县| 双流县| 开远市| 渭南市| 安多县| 新源县| 宜君县| 阳山县| 衡东县|