3 回答

TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊
以上兩個答案似乎都不清楚。另外,永遠(yuǎn)不會刪除創(chuàng)建的div,因此反復(fù)調(diào)用這些函數(shù)會占用內(nèi)存。嘗試這個:
// this function must come before calling it to properly set “temp”
function MSIEsetTBodyInnerHTML(tbody, html) { //fix MS Internet Exploder’s lameness
var temp = MSIEsetTBodyInnerHTML.temp;
temp.innerHTML = '<table><tbody>' + html + '</tbody></table>';
tbody.parentNode.replaceChild(temp.firstChild.firstChild, tbody); }
MSIEsetTBodyInnerHTML.temp = document.createElement('div');
if (navigator && navigator.userAgent.match( /MSIE/i ))
MSIEsetTBodyInnerHTML(tbody, html);
else //by specs, you can not use “innerHTML” until after the page is fully loaded
tbody.innerHTML=html;
即使使用此代碼,MSIE似乎也無法正確調(diào)整應(yīng)用程序中表格單元格的大小,但是我正在用生成的可變內(nèi)容填充空的tbody標(biāo)簽,而thead單元格的colspan值設(shè)置為固定值:生成的肢體內(nèi)可能存在的最大單元數(shù)。表格正文為50個單元格寬時,僅顯示兩列。也許如果表最初是填充的,并且單元格被相同的內(nèi)部結(jié)構(gòu)替換,則此方法將起作用。Google的Chrome瀏覽器在重建表格方面做得非常出色,而Opera的桌面瀏覽器可以將更多列的大小調(diào)整得很好,但是如果刪除列,則剩余的列寬度將保持原來的寬度。但是在Opera中,通過隱藏表格(display = none)然后重新顯示表格(display = table),生成的表體單元格大小正確。我已經(jīng)放棄了Firefox。這是2012年的MSIE-6,這是一場噩夢,必須為此添加額外的標(biāo)記才能使HTML-CSS布局正常工作,因為它甚至不符合MSIE現(xiàn)在的標(biāo)準(zhǔn)。因此,我尚未在Firefox中測試過tbody.innerHTML的工作原理。
添加回答
舉報