尝试从另一个窗口追加一个HTML对象时,Internet Explorer会抛出SCRIPT5022:HierarchyRequestError

pha*_*tri 2 html javascript jquery internet-explorer

我从一个窗口有一个html表.我通过使用得到了表

var table = document.getElementById('tableId');
Run Code Online (Sandbox Code Playgroud)

然后我用以下方法打开另一个窗口:

window.open('newWindow.html'); 
Run Code Online (Sandbox Code Playgroud)

在这个窗口中,有一个id = divId的div.

现在,如果我尝试通过以下代码从其他窗口追加表:

var cloneTable = jQuery.extend(true, {}, window.opener.table);

var div = document.getElementById('divId');

div.appendChild(cloneTable);
Run Code Online (Sandbox Code Playgroud)

Internet Explorer将抛出此错误:

SCRIPT5022:HierarchyRequestError

我已经搜索了错误代码,如下所示:

http://msdn.microsoft.com/en-us/library/ie/gg592979(v=vs.85).aspx

它说我无法在该位置插入节点.但是,上面的代码在Firefox和Chrome中运行良好.

这里发生了什么以及如何解决这个问题?

谢谢,

PS:我正在使用IE 10

小智 10

IE可能无法跨不同文档移动元素.如果浏览器无法克隆表,您可以使用outerHTML属性.

例如

var tbl = window.opener.table;
try {
    document.getElementById('my_div').appendChild(tbl.cloneNode(true)); 
}
catch (e){
    if (tbl.outerHTML) {
        document.getElementById('my_div').innerHTML = tbl.outerHTML;
    }
    else {
            console.log('not working');
    }
}
Run Code Online (Sandbox Code Playgroud)