JavaScript DOM: перенос элемента между фреймами - PullRequest
1 голос
/ 06 мая 2010

Я использую следующий код jQuery внутри iframe (того же источника), чтобы попытаться переместить узел из 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?

Edit: Может быть это как-то связано со свойством ownerDocument? Я попытался изменить его на window.top.document на #dest_id, но это не сработало.

Редактировать, аналогичный вопрос: Невозможно добавить ребенка к узлу, созданному из другого фрейма

1 Ответ

0 голосов
/ 07 мая 2010

Плохо пытаться перемещать элементы между фреймами, потому что вы никоим образом не можете заставить своего пользователя только просматривать страницу, пытающуюся отправить данные в контексте фрейма - пользователь может выбрать переход непосредственно на страницу. , Вне контекста страница просто не будет работать должным образом.

Гораздо лучшим решением будет заставить дочернюю страницу записать данные, которые вы хотите, чтобы родительская страница получала в базу данных, или какой-либо другой вид постоянных данных сеанса. Затем вы можете использовать какой-либо обратный вызов, чтобы сообщить родительской странице о правильном время, чтобы проверить данные сеанса для ваших возвращенных данных. Это гораздо аккуратнее, и не зависит от просмотра ваших страниц в определенных контекстах.

Не прямой ответ на ваш вопрос, я знаю. Но есть мое мнение: -)

Удачи!

...