2007年09月19日
yui-ext在FX上可執行,但在IE卻出錯
自從用了Mozilla Firefox 2(FX)的瀏覽器之後
我漸漸遠離了Microsoft Internet Explorer(IE),
因為FX的外掛元件Firebug對於javascript的除錯支援相當的強大,
對完整HTML的分析,CSS的解析,都可以完整的即時控制,
而且能夠看見Ajax在後端產生的動作,Post資料,GET資料都一目了然。
因為我個人撰寫javascript的時候,都是以FX平台居多,原因如上,不再贅述,
所以有時候,在FX上work非常正常的javascript,卻無法在IE上正常執行,
為什麼會這樣呢~~?
先假設我們撰寫的這段javascript,
是FX、IE都支援的語法,
可是為什麼~~FX可以正常執行,IE卻不行?
通常有兩個原因
一、程式碼間多了不該多的逗號(extra comma)
二、javascript檔案與HTML檔案間的編碼不一致
以第一個問題,通常會發生在這種情況
//JSON格式
[
{
id:'the id',
name:'the name',
text:'the text',
}
]
在以上的程式碼,在FX接到JSON時,是可以正常運作的,但是在IE就不行,
眼尖的您應該可以看到,罪魁禍首就是在text:'the text',<---多了一個逗點,
所以當您碰到一段自己寫的javascript,在FX上可以執行,在IE上卻不能執行的時候,
請先試著找找看有沒有多餘的逗號!
第二個問題點,就是javascript比較麻煩的編碼問題,
如果檔案回傳時的編碼再透過Ajax呼叫時,與原程式碼的編碼不同,
也會造成FX可以執行,IE卻不能執行的問題,
所以要確定每個檔案的編碼都一致,傳送給伺服器,從伺服器接收的編碼也要一致。
引用URL
http://cgi.blog.roodo.com/trackback/4163907