2013/12/26

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

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

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

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

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



其中 ID 為 DOM 節點的 ID 屬性
  1. "1."
  2. document.all("ID")
  3. /* 修改成:*/
  4. document.getElementById("ID")
  5. "2."
  6. document.all["ID"]
  7. /* 修改成:*/
  8. document.getElementById("ID")
  9. "3."
  10. document.all.tags("div")
  11. /* 修改成:*/
  12. document.getElementsByTagName("div")
  13. "4."
  14. document.all.ID
  15. /* 修改成:*/
  16. document.getElementById("ID")
  17. /* 或是*/
  18. document.getElementsByTagName.ID
  19. /* (後者絕對是無腦 Find & Replace 好用而已 0rz)*/
  20. "5."
  21. document.all[10]
  22. /* 修改成 */
  23. document.getElementsByTagName('*')[10].innerText
  24. /* 這個節點順序異動就死了,建議就順道改掉吧 */

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

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

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

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


沒有留言:

張貼留言