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 相关文章推荐
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
通过身份证号得到出生日期和性别的js代码
Nov 23 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
Mar 23 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
Oct 23 Javascript
获取表单控件原始(初始)值的方法
Aug 21 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
jQuery通用的全局遍历方法$.each()用法实例
Jul 04 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
Dec 06 Javascript
详解如何用VUE写一个多用模态框组件模版
Sep 27 Javascript
JavaScript提升机制Hoisting详解
Oct 23 Javascript
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
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对象类型判断
2008/08/27 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
开启PHP的伪静态模式
2015/12/31 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
微信小程序云开发之使用云存储
2019/05/17 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
Python学习笔记之常用函数及说明
2014/05/23 Python
Python 26进制计算实现方法
2015/05/28 Python
八大排序算法的Python实现
2021/01/28 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
Python读取指定日期邮件的实例
2019/02/01 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
白血病募捐倡议书
2014/05/14 职场文书
作风整顿剖析材料
2014/09/30 职场文书
企业安全生产规章制度
2015/08/06 职场文书
Python中else的三种使用场景
2021/06/16 Python
JAVA API 实用类 String详解
2021/10/05 Java/Android