JavaScript-DOM:在帧之间传输元素

JavaScript-DOM:在帧之间传输元素,javascript,jquery,dom,iframe,frames,Javascript,Jquery,Dom,Iframe,Frames,我在iframe(同一来源)中使用以下jQuery代码尝试将节点从iframe移动到主(顶部)文档 var dest = $(window.top.document).find('#dest_id'); dest.append($('#source_id')); 以下工作正常: window.top.document.getElementById('dest_id').innerHTML = document.getElementById('source_id').innerHTML; 我想

我在iframe(同一来源)中使用以下jQuery代码尝试将节点从iframe移动到主(顶部)文档

var dest = $(window.top.document).find('#dest_id');
dest.append($('#source_id'));
以下工作正常:

window.top.document.getElementById('dest_id').innerHTML = document.getElementById('source_id').innerHTML;
我想在帧之间移动DOM节点是有限制的。 在普通js或jquery中有没有办法解决这个问题

编辑: 这可能与
所有者文档
属性有关吗?我尝试将其更改为dest#u id上的
window.top.document
,但没有成功


编辑,类似问题:

尝试在帧之间移动元素是个坏主意,因为您无法强制用户仅查看试图在iframe上下文中发送数据的页面-用户可以选择直接导航到该页面。脱离其原始上下文,页面将无法正常工作

更好的解决方案是让子页面将希望父页面接收的数据写入数据库或其他类型的持久会话数据,然后可以使用某种回调通知父页面检查会话数据返回数据的正确时间。这要整洁得多,并且不依赖于在特定上下文中查看页面

我知道这不是对你问题的直接回答。但我的观点是:-)


祝你好运

根据我的经验,在帧之间移动字符串和数字以外的任何东西都是有风险的。在某些版本的IE中,我甚至在帧之间移动日期对象时遇到问题。Does
var dest=$('dest_id',window.top.document)工作?我认为$('dest_id',window.top.document)等同于$(window.top.document).find('dest_id')-它也不工作。