Javascript 将现有DIV移动到动态创建的iFrame no jQuery

Javascript 将现有DIV移动到动态创建的iFrame no jQuery,javascript,iframe,Javascript,Iframe,正在尝试移动现有DIV: <div id="wrapper"></div> 出错 无法读取null的属性“parentNode” 我做错了什么?因为伪div在iFrame中,所以对document.getElementById'dummy'的调用将返回null。document.getElementById仅搜索原始网页文档中的元素。iFrame是它们自己的单独文档。因此,对dummyId.parentNode的调用试图访问null的parentNode,因为原始文档中

正在尝试移动现有DIV:

<div id="wrapper"></div>
出错

无法读取null的属性“parentNode”


我做错了什么?

因为伪div在iFrame中,所以对document.getElementById'dummy'的调用将返回null。document.getElementById仅搜索原始网页文档中的元素。iFrame是它们自己的单独文档。因此,对dummyId.parentNode的调用试图访问null的parentNode,因为原始文档中不存在伪元素,这会导致错误

您需要从iFrameDoc中获取虚拟元素。试试这个:

var dummyID = iframeDoc.getElementById("dummy");
dummyID.parentNode.replaceChild(document.getElementById('wrapper'), dummyID);

注意,您还需要修改replaceChild调用,因为参数为newElem、oldElem、,您似乎已将它们交换。

这引发了一个错误:未能在“节点”上执行“replaceChild”:参数1不是“节点”类型。似乎对我有效:我注意到在原始代码中您使用了wrapper而不是document.getElementById“wrapper”,因此您可以尝试:dummyID.parentNode.replaceChildwrapper,dummyID;
var dummyID = document.getElementById("dummy");
dummyID.parentNode.replaceChild(dummyID, wrapper);
var dummyID = iframeDoc.getElementById("dummy");
dummyID.parentNode.replaceChild(document.getElementById('wrapper'), dummyID);