IE6-9不支持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 colcolGroupframeSethtmlheadstyletabletBodytFoottHeadtitle, 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博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

相关文章
|
JavaScript
ie8 ie浏览器下载excel文件乱码,变成压缩包,解决方案
ie8 ie浏览器下载excel文件乱码,变成压缩包,解决方案
182 0
|
安全
Selenium在Win10下IE浏览器遇到的白屏初始页面解决方案
开发环境:Win10+Python3.5+Selenium+IE11硬件环境:联想MIIX700语言环境:English(US)在做数据爬取得时候,发现IE Driver出现白屏,跟着提示:“This is the initial start page for the WebDriver server“几经寻找,解决了问题。
1929 0
|
Web App开发 移动开发 JavaScript
IE6下focus与blur错乱的解决方案
Miller同学发现的IE6 bug:如以下代码,点击textarea时,引发window的blur,导致focus与blur配对混乱: hello window.onblur=function(){ document.title= 'blur:' + Math.random() ; } window.onfocus=function(){ document.title= 'focus:' + Math.random() ; } 这应该是一个很常见的需求,例如,当前窗口定期更新数据,而窗口失焦则减少信息更新频率。
708 0
|
Web App开发 JavaScript 前端开发
Vue 兼容 ie9 的全面解决方案
Vue 官方对于 ie 浏览器版本兼容情况的描述是 ie9+,即是 ie9 及更高的版本。经过测试,Vue 的核心框架 vuejs 本身,以及生态的官方核心插件(VueRouter、Vuex等)均可以在 ie9 上正常使用。
2374 0