如下
<!DOCTYPE HTML> <html> <head> <meta charset="gbk" /> <title>IE6/7/8中innerHTML "Bug"</title> </head> <body> <div id="d"> <div id="d2">d2 text</div> </div> <script> var d2 = document.getElementById('d2'); var d = document.getElementById('d'); d.innerHTML = ''; alert(d2.innerHTML); </script> </body> </html>
結(jié)果:
IE9/Firefox/Safari/Chrome/Opera : 彈出 "d2 text" 文本
IE6/7/8 :彈出""空字符串
IE6/7/8中使用innerHTML清空父元素div[id=d],子元素div[id=d2]的innerHTML也被清了,子元素被清包括兩個(gè)部分:
1,dom結(jié)構(gòu)中清掉了
2,內(nèi)存中innerHTML置為空字符串(d2.innerHTML)
而 2 不應(yīng)該被置為空字符串的,這是"Bug"。這里的"Bug"加引號(hào),因?yàn)閕nnerHTML當(dāng)時(shí)并非標(biāo)準(zhǔn)的。
這個(gè)問(wèn)題是 nick 發(fā)現(xiàn)的。
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇