IE6-IE9不支持table.innerHTML的解决方法分享


Posted in Javascript onSeptember 14, 2012

测试代码:

<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)后发现有这么一段:

The innerHTML property is read-only on the col, colGroup, frameSet, html, head, style, table, tBody, tFoot, tHead, title, and tr objects.

所以只能用其他方案解,我的方案:
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

Javascript 相关文章推荐
JQuery 实现的页面滚动时浮动窗口控件
Jul 10 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
jQuery实现移动 和 渐变特效的点击事件
Feb 26 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
Aug 07 Javascript
浅述节点的创建及常见功能的实现
Dec 15 Javascript
js省市区级联查询(插件版&amp;无插件版)
Mar 21 Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 Javascript
vue父组件给子组件的组件传值provide inject的方法
Oct 23 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
解决echarts数据二次渲染不成功的问题
Jul 20 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 Javascript
javascript时区函数介绍
Sep 14 #Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 #Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
Sep 14 #Javascript
基于JQuery的一句话搞定手风琴菜单
Sep 14 #Javascript
JQuery select控件的相关操作实现代码
Sep 14 #Javascript
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 #Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
Sep 14 #Javascript
You might like
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
python使用pil生成图片验证码的方法
2015/05/08 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
python关于变量名的基础知识点
2020/03/03 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
家佳咖啡店创业计划书
2013/12/27 职场文书
初中校园广播稿
2014/02/02 职场文书
班级文化标语
2014/06/23 职场文书
119消防日活动总结
2014/08/29 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
小英雄雨来观后感
2015/06/09 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
redis限流的实际应用
2021/04/24 Redis