IE6-IE9不支持table.innerHTML的解决方法分享
<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
相关推荐
-
js的.innerHTML = ""IE9下显示有错误的解决方法
问题: 在用js动态创建html页面时: 复制代码 代码如下: var tab = document.createElement("table"); tab.innerHTML += "<td>订货单号</td>"+ "<td>单据日期</td>"+ "<td>商品类型</td>"+ "<td>订单属性</td>"
-
IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值,重现代码如下 复制代码 代码如下: <!DOCTYPE html><html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <body style=&quo
-
IE6-IE9中tbody的innerHTML不能赋值的解决方法
IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <body style="height:3000px"> <table&
-
IE6-IE9使用JSON、table.innerHTML所引发的问题
一.在IE兼容模式中以及各具有IE内核的浏览器兼容模式中使用 jQuery 中的JSON函数时出现"JSON未定义" 而切换到浏览器高速模式则正常显示 解决方案 : 1.直接在使用的页面中引入json2.js (https://github.com/douglascrockford/JSON-js/blob/master/json2.js)引入方法不再赘述. 2.在页面的公共js方法里判断 if(typeof JSON == 'undefined'){ $('head').appe
-
IE6-IE9不支持table.innerHTML的解决方法分享
测试代码: 复制代码 代码如下: <table id="test"> </table> <script> var oTable=document.getElementById("test"); oTable.innerHTML="<tr><td>innerHTML</td></tr>"; </script> 上述代码在IE6-9中无效,直接报错: IE
-
火狐4、谷歌12不支持Jquery Validator的解决方法分享
解决方法.在form中添加 novalidate 属性就可以解决这个问题,并且不影响在ie下的效果 例如: <form method="post" action="rival_show.jsp" id="form1" name="form1" novalidate></form> 详细解说见:http://www.w3.org/TR/html5/forms.html#attr-fs-novalidate
-
MySQL中Union子句不支持order by的解决方法
本文实例讲述了MySQL中Union子句不支持order by的解决方法.分享给大家供大家参考,具体如下: 我对DB知之甚少,这问题只在MySQL遇到,不知道别的DBMS是不是也如此. 问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写: select id,title from subjects where id>#some_id# order by id limit 1 union select id,title from subjects
-
jQuery在ie6下无法设置select选中的解决方法详解
本文实例讲述了jQuery在ie6下无法设置select选中的解决方法.分享给大家供大家参考,具体如下: 这里主要解决在 ie6 下,jquery 无法设置 select 选中的问题.我们先看个例子: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"/> <title>demo</title> </head&g
-
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
实例如下: if (!Array.prototype.indexOf) Array.prototype.indexOf = function (elt /*, from*/) { var len = this.length >>> 0; var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0) from += len;
-
ios 不支持 iframe 的完美解决方法(兼容iOS&安卓)
最近做微信公众号页面,因为入口不同,需要把公共页面抽取出来,然后根据不同的值,传递给后台不同的入口.刚开始用iframe页面嵌套(第一次尝试使用),但发现iOS系统对iframe嵌套页面的高度和定位控制的不到位,具体表现为,当嵌套的子页面的高度大于父页面的高度,且子页面中有触发弹框事件时,这时,如果子页面高度远远大于父页面高度,就会出现弹框找不到的情况,其实可能是在视口以下,弹框的位置只是相对于子页面来定位,并没有相对于视口定位. 尝试了好多种方法,均不理想,而安卓系统则表现良好,于是想到,iO
-
Tensorflow不支持AVX2指令集的解决方法
这几天研究了一下FCN(全卷积网络),由于电脑配置不够,用GPU训练直接报OOM(内存溢出)了, 于是转战CPU,当然,这样会很慢,之后会继续搞一下,减小一下网络的复杂度,对一些参数设置一波,看能不能正常跑下来. 记得一开始没有装GPU版的tensorflow时用CPU版本跑程序的时候总是报警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2,当时没有太在意,
-
MySQL中隐式转换的踩坑记录以及解决方法分享
目录 复现当时的情景 根源所在 隐式转换的规则 避免进行隐式转换 本来是一个平静而美好的下午,其他部门的同事要一份数据报表临时汇报使用,因为系统目前没有这个维度的功能,所以需要写个SQL马上出一下,一个同事接到这个任务,于是开始在测试环境拼装这条 SQL,刚过了几分钟,同事已经自信的写好了这条SQL,于是拿给DBA,到线上跑一下,用客户端工具导出Excel 就好了,毕竟是临时方案嘛. 就在SQL执行了之后,意外发生了,先是等了一下,发现还没执行成功,猜测可能是数据量大的原因,但是随着时间滴滴答答
-
navicat不能创建函数解决方法分享
第一次写MySQL FUNCTION,一直报错, Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`company_id` int) RETURNS varchar(20) CHARSET utf8 BEGIN 本来的函数: CREATE DEFINER
-
Spring MVC参数传递中文乱码解决方法分享
概述 中国特色社会主义乱码问题是我们经常会碰到的问题,解决的办法有很多,本文分别介绍了GET方式和POST方式中文乱码解决方案中一劳永逸的办法. GET提交中文乱码解决方案 在乱码的Controller文件中采用下面的方法将编码转换成UTF-8 String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"); 修改项目所在的Tomcat服务器
随机推荐
- jQuery实现弹出窗口中切换登录与注册表单
- 为用户批量建立私人文件夹并设定权限的批处理
- MySQL性能优化的一些技巧帮助你的数据库
- jQuery基于ajax实现页面加载后检查用户登录状态的方法
- 日期 时间js控件
- jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
- Centos7下无法远程连接mysql数据库的原因与解决
- 阻止事件(取消浏览器对事件的默认行为并阻止其传播)
- Zend Framework自定义Helper类相关注意事项总结
- C/C++ 公有继承、保护继承和私有继承的对比详解
- MySQL Order By索引优化方法
- mysql利用group_concat()合并多行数据到一行
- JS实现星星评分功能实例代码(两种方法)
- 30岁买什么保险最好(优先健康类疾病,意外然后再分红险)
- MongoDB的基础知识简介
- jQuery EasyUI API 中文文档 - EasyLoader 加载器
- struts2+jquery实现ajax登陆实例详解
- jQuery实现HTML5 placeholder效果实例
- 原生js实现秒表计时器功能
- 如何使用Javascript获取距今n天前的日期