IE 下的唯讀 innerHTML

2022-10-03 09:15:12 字數 881 閱讀 5743

今天做東西遇到乙個問題,我試圖動態為乙個**新增多行資料,先定義了乙個table:

複製** **如下:

然後在j**ascript 中這樣操作:

複製** **如下:

for(var i in entries)

在firefox 下這麼乾是沒有問題的,但是放到 ie 下面就死活不行了,問了下同事+搜尋了一下,發現在 ie 下 col, colgroup, frameset, html, style, table, tbody, tf程式設計客棧oot, thead, title, tr 這些元素的 innerhtml 屬性都是唯讀的,不能直接操作。但是也不是沒有解決辦法,td 的innerhtml 還是可以操作的,上面的**可以這樣修改:

複製** **如下:

for(var i in entries)

可以先使用 dom 的 createelement 方法建立 tr 和 td,然後對 td 的 innerhtml 進行相應操作,最後用 appendchild 方法把建立的元素新增到 dom 樹中。這樣在 ie 下就可以正常執行了。需要程式設計客棧注意的是,如果你的 table 沒有 tbody,而是這樣:

這個時候就不能對 table 直接使用 appendchild 方法了,因為ie6 下 table 元素是不支援 appendchild 方法的(ie8 貌似已經支援了)。

網上也有人提出用 insertrow() 等方法來做,不過這個方法對不同瀏覽器的相容也是有問題的(在firefox 下就需要使用 insertrow(-1) ),所以就沒用。

btw,雖然之前也有意識地看了不少 js 的資程式設計客棧料,但還是實踐出真知啊,現在剛開始手忙腳亂的,學習淡定ing

本文標題: ie 下的唯讀 innerhtml

本文位址:

IE中唯讀的innerHTML屬性

編寫ajax程式時,經常需要動態生成頁面元素,而element上屬性innerhtml就是我們經常利用的途徑。但今天在為乙個table元素的innerhtml時賦值時,在firefox下是好的,但在ie6下就不行了。查了一下原因,原來是在ie下,下列元素table,thead,tfoot,tbody...

IE 下的列印

試著改變引數會得到其他一些功能 webbrowser.execwb 1,1 開啟 webbrowser.execwb 2,1 關閉現在所有的ie視窗,並開啟乙個新視窗 webbrowser.execwb 4,1 儲存網頁 webbrowser.execwb 6,1 列印 webbrowser.exe...

innerText和innerHtml的區別

innertext 跟innerhtml 是兩個非 dom標準的方法 其區別如圖所示 在ie中 innertext 跟 innerhtml 兩個方法都能正常執行 但是ff裡面的innertext不可用,但是有乙個替代方法 textcontent ie odiv.innertext astring o...