我在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?
编辑:
它可能与ownerDocument
属性有关吗?我尝试在#dest_id上将其更改为window.top.document
,但它无效。
编辑,类似问题:Can't appendChild to a node created from another frame
答案 0 :(得分:0)
尝试在帧之间移动元素是一个坏主意,因为您无法强制用户仅查看尝试在iframe上下文中发送数据的页面 - 用户可以选择直接导航到页面。在原始上下文中,页面将无法正常工作。
更好的解决方案是让子页面将您希望父页面接收的数据写入数据库或其他类型的持久会话数据,然后您可以使用某种回调来向父页面发送正确的信号是时候检查返回数据的会话数据了。这非常简洁,并且不依赖于在特定情况下查看您的页面。
我知道,这不是对你问题的直接回应。但我的意见是: - )
祝你好运!