Pages

2006年9月22日 星期五

解決在 IE 上空白的問題

在 Blogger 架設完 "Skyer 時間紀元" 之後,玉姐跟我說她用 IE 開起來後是空白的一片,我心裡大叫「不會吧... 冏rz」

雖然曾經也曾遇過這種鳥事,不過沒有一次是真正去解決的,總是認為這是別人寫網頁時沒有寫好所發生的錯誤,就隨手點了右上角的叉叉直接把它關掉,這下子可好了,這次哪裡不發生,竟然發生在我的 blog 上...

平常習慣是 Maxthon、Firefox 瀏覽器交替著用,剛好 Firefox 上沒有問題,而相容性比較好的 IE 卻出了問題。Blogger.com 被 Google 購買之後品質沒道理會下降,應該會提升才對啊...
「村長說他 IE 看你的 blog 卻沒有問題耶...」玉姐透過 MSN 繼續跟我說道。
天... 事情更加複雜,有些 IE 可以,有些 IE 卻有問題,我相信我的 IE 是最乾淨的了... 所以直接把外掛影響給屏除了,就直接以 Firefox 和 IE 的差異性來著手...

查了一下線上的文獻,幾分鐘過後發現 IE 和 Firefox 在 "解析網頁編碼的順序" 上有一些差異性。IE 是先解析完內容標籤後,再解析 header 標籤,Firefox 則和 IE 剛好相反。
Blogger.com 的預設編輯與系是萬國語 (utf-8),所以裡面會有一行

"meta equiv="Content-Type" content="text/html;harset=UTF-8"

的東西,而剛好我的 title 裡有了 "時間紀元" 這四個 utf-8 編碼的中文,所以...

Firefox 先使用 utf-8 解析了 header,然後繼續使用了 utf-8 編碼繼續下去,所以沒有問題,而 IE 如果預設中文 big-5 編碼的話,解析完內容後解析了 header 發現是使用 utf-8 編碼... 就有可能造成錯誤致使中斷... 所以觀看原始碼你可以看到東西,螢幕上卻空白一片。

目前解決方法就是
  1. title 別使用中文
  2. IE 預設使用 utf-8 解析網頁
  3. meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / 擺到最前面,至少要比 title 還前面
果然,修改之後,不管是 IE 和 Firefox 來瀏覽都不會有任何問題了。

(如果是 spaces 發生這種情形的話大概就死路一條了,因為連修改都不能修改... 唉)