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プロパティと関係があるのでしょうか?on #dest_idに変更しようとしwindow.top.documentましたが、うまくいきませんでした。

編集、同様の質問: Can't appendChild to a node created from another frame

4

1 に答える 1

0

フレーム間で要素を移動しようとするのは悪い考えです.iframe のコンテキストでデータを送信しようとしているページだけを表示するようにユーザーに強制する方法はないためです.ユーザーはページに直接移動することを選択できます. 元のコンテキストから外れると、ページは適切に機能しなくなります。

はるかに優れた解決策は、親ページが受信するデータを子ページに書き込むことです。データベースまたはその他の種類の永続的なセッションデータに書き込みます。その後、何らかのコールバックを使用して、親ページにチェックする正しい時間を知らせることができます。返されたデータのセッション データ。これははるかに優れており、ページが特定のコンテキストで表示されていることに依存しません。

あなたの質問への直接的な回答ではないことは承知しています。しかし、私の意見があります:-)

幸運を!

于 2010-05-07T10:08:12.637 に答える