Ajax取值時出現未知的運行時錯誤的解決方法
在Ajax里經常會通過innerHTML來改變界面,這個比使用DOM要簡單一些。
比如:
element.innerHTML = "put code here"
不過,在IE中,有時候會出現"未知的運行時錯誤(unknown runtime error)",而在firefox里不會。
這主要是IE在對innerHTML進行寫操作的時候會檢查element是否具備做為這些內容中html對象容器的要求,比如如果你是在一個p里加入包含
的html代碼,這是會出錯的。所以如果你發現這些錯誤出現,嘗試做兩件事情:1、檢查你嘗試加到innerHTML的html代碼是否包含沒有閉合的html標簽,如沒有
.2、把你的容器改成那些比較“包容”的標簽,如,
特別注意的是
,標簽都有可能出錯,所以應該避免使用這些標簽作為容器,必要時可以用 | 作為容器,再嵌套一層表格。 問題的現象是:? 運行了 document.all["ptName"].innerHTML="產品名稱";? 結果出現了錯誤 “ 未知的運行時錯誤”,運行時錯誤是比較讓人頭疼的問題,很難找到錯誤的原因。大概找了十分鐘的錯誤,還是一籌莫展,正在苦惱的時候,高手給我指點了一下,問題解決了 出錯的原因是:我所設置的innerHTML的對象是一個 |
解決方案:增加了一個,設置的innerHTML就解決了。
總結: tr,table 等等的對象包容性比較低,而像 span,div 包容性就非常高。因此在應用innerHTML等javascript腳本函數時,一定要選擇 span,div等對象包容性好的標記來實現