2013/12/26

[筆記] 使用標準 HTML DOM 物件取代 document.all 集合

最近在幫公司一個很老的案子處理相容 IE9 的升級工作

除了外購元件必須升級可以對應 IE9 的版本之外,也順道料理了 document.all 這個集合

 (我知道 IE11 出了但是公司產品的外購元件除非換掉不然不知道有沒有完整的IE11解決方案哭哭....)

大致上 memo 一下 document.all 應該要用哪些標準的 HTML DOM 方法來取代



其中 ID 為 DOM 節點的 ID 屬性

"1."
document.all("ID")
/* 修改成:*/
document.getElementById("ID")

"2."
document.all["ID"]
/* 修改成:*/
document.getElementById("ID")

"3."
document.all.tags("div")
/* 修改成:*/
document.getElementsByTagName("div")

"4."
document.all.ID
/* 修改成:*/
document.getElementById("ID")
/* 或是*/
document.getElementsByTagName.ID
/* (後者絕對是無腦 Find & Replace 好用而已 0rz)*/

"5."
document.all[10]
/* 修改成 */
document.getElementsByTagName('*')[10].innerText
/* 這個節點順序異動就死了,建議就順道改掉吧 */

大概這幾種... 有找到新的再補

oh 然後看到外購元件裡面有用一個 if(document.all) 的方法

稍微 google 了一下有人說是類似判斷 if(MSIE)

但 document.all 不是只有 IE 有的樣子(手上的 IE9,Chrome 31 都有支援),雖然不是標準,但其他瀏覽器似乎是西瓜偎大徬也跑來幫忙支援 XD


沒有留言:

張貼留言