手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >IE6-IE9不支持table.innerHTML的解决方法分享
IE6-IE9不支持table.innerHTML的解决方法分享
摘要:测试代码:复制代码代码如下:varoTable=document.getElementById("test");oTable.innerHT...

测试代码:

复制代码 代码如下:

<table id="test">

</table>

<script>

var oTable=document.getElementById("test");

oTable.innerHTML="<tr><td>innerHTML</td></tr>";

</script>

上述代码在IE6-9中无效,直接报错:

IE9:Invalid target element for this operation.

IE6-8:Unknown runtime error

查找IE的文档(http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx)后发现有这么一段:

TheinnerHTMLproperty is read-only on thecol,colGroup,frameSet,html,head,style,table,tBody,tFoot,tHead,title, andtrobjects.

所以只能用其他方案解,我的方案:

复制代码 代码如下:

var oTable=document.getElementById("test");

//oTable.innerHTML="<tr><td>innerHTML</td></tr>";

setTableInnerHTML(oTable,"<tr><td>innerHTML</td></tr>");

function setTableInnerHTML(table, html) {

if(navigator && navigator.userAgent.match(/msie/i)){

var temp = table.ownerDocument.createElement('div');

temp.innerHTML = '<table><tbody>' + html + '</tbody></table>';

if(table.tBodies.length == 0){

var tbody=document.createElement("tbody");

table.appendChild(tbody);

}

table.replaceChild(temp.firstChild.firstChild, table.tBodies[0]);

} else {

table.innerHTML=html;

}

}

这里只是对table做了处理,对其他不支持的元素可以用类似的方案。

另外,IE10中table已经支持innerHTML了。

作者:Artwl

【IE6-IE9不支持table.innerHTML的解决方法分享】相关文章:

javascript清空table表格的方法

JQuery+CSS实现图片上放置按钮的方法

JavaScript中停止执行setInterval和setTimeout事件的方法

javascript操作ul中li的方法

javascript获取select值的方法分析

动态加载jQuery的方法

js光标定位文本框回车表单提交问题的解决方法

7个有用的jQuery代码片段分享

JS选项卡动态替换banner图片路径的方法

破解Session cookie的方法

精品推荐
分类导航