2008年03月27日

IE的global namespace pollution

昨天寫了一段javascript code,在Firefox跑,一切正常;到IE不能跑。用Microsoft Script Editor來debug,雖然可以知道錯誤發生在哪一段程式,但是看了半天卻看不出錯誤在哪。後來只好死馬當活馬醫,用trial and error方法,把code隨意改一改。結果發現:咦,把相關的HTML element id改掉,似乎程式就不會卡住了。難道是IE對我的id命名有意見?

再定睛一看,會卡住的code剛好都是javascript variable和HTML id取名一樣的。原來,在IE裡javascript variable的名字不能和HTML id一樣!?再做了一些實驗,原來IE會把每個有id的element當作javascript的global variable,讓你直接用id/name存取DOM,而不必透過getElementById()。

這真的很討厭。我看到有國外的網站稱之為global namespace pollution。


Posted by fauzty at 樂多Roodo! │14:21 │回應(0)引用(0)資訊攻略
樂多分類:網路/3C 工具:加入樂多書籤編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/5763715