Могу ли я переместить узел DOM из iFrame в тело родителя? - PullRequest
0 голосов
/ 10 мая 2018

В настоящее время я пытаюсь переместить узел DOM, используя следующий фрагмент:

var element = document.getElementById('my-id');
parent.window.body.appendChild(element);

Код выше отображается в iFrame, но я получаю исключение «parent.window.body is undefined». Это функция безопасности (поскольку я действительно хочу вырваться из iframe)?

Обратите внимание: Я не хочу переспрашивать "как переместить узел DOM" как таковой , но перемещать его через границы iframe!

1 Ответ

0 голосов
/ 10 мая 2018

Да, вы можете, в пределах того же источника . (Проверено в Firefox, Chrome, IE8, IE11 и Edge.) Обратите внимание, что при этом все подключенные к нему прослушиватели событий остаются подключенными, что может привести к путанице. Также обратите внимание, что старая спецификация DOM3 допускала ошибку, если узел добавлялся к другому документу, но более поздняя спецификация WHAT-WG DOM не упоминает об этом (если вы начинаете с appendChild и выполните, вы в конечном итоге здесь , в котором нет этого исключения в списке).

Но body не является свойством окна, это свойство document. Также обратите внимание, что parent.window является избыточным. Итак:

parent.document.body.appendChild(element);
// ----^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...