今天发现IE下无法正常执行脚本的问题,检查资料发现是IE的部分标签不支持innerHTML

参考一下这个好了,未实践此代码

var objtable=document.getElementById('devicelisttable')
var thead=objtable.rows[0].parentNode.innerHTML
objtable.innerHTML=thead+iteminfo.join('');
上面代码在IE6-9中直接报错:
IE9:Invalid target element for this operation.
IE6-8:Unknown runtime error

IE10 中正常。
查看msdn文档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.
原来在ie6-ie9中table的innerHTML是只读的。 解决方法:
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;
}
}

var objtable=document.getElementById('devicelisttable')
var thead=objtable.rows[0].parentNode.innerHTML
setTableInnerHTML(objtable, thead+iteminfo.join(''))





原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
发表评论
AD
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML 打开UBB 打开表情 隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写
 

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐