1

我在 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财产有关吗?我尝试将其更改为window.top.document#dest_id 但没有奏效。

编辑,类似的问题:Can't appendChild to a node created from another frame

4

1 回答 1

0

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

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

不是直接回答你的问题,我知道。但有我的意见:-)

祝你好运!

于 2010-05-07T10:08:12.637 回答