Этот ответ связан с щедростью by @djechlin
blockquote>. Многие поиски по спецификациям w3 / dom и не нашли ничего окончательного, что конкретно говорит о том, что iframe должен перезагружаться при перемещении в дереве DOM, однако в течение нескольких лет я нашел множество ссылок и комментариев в trac / bugzilla / microsoft webkit относительно различных изменений поведения.
Надеюсь, что кто-то найдет что-то конкретное в отношении этого вопрос, но на данный момент вот мои выводы:
- Согласно Ryosuke Niwa - «Это ожидаемое поведение».
- magic iframe "( webkit, 2010 ), но он был удален в 2012 году .
- Согласно MS -« ресурсы iframe освобождаются, когда удалены из DOM ". Когда вы
appendChild(node)
существующего узла, -node
сначала удаляется из dom. Интересная вещь здесь -IE<=8
не перезагружает iframe - это поведение (несколько) новое (посколькуIE>=9
).- Согласно комментарию Hallvord RM Steen , это - это цитата из спецификаций ifgram . Когда элемент iframe вставлен в документ, в котором есть контекст просмотра, пользовательский агент должен создать новый контекст просмотра, установить контекстный контекст просмотра элемента в недавно созданный контекст просмотра, а затем обрабатывать атрибуты iframe для «первого раза». Это самая близкая вещь, которую я нашел в спецификациях, однако она по-прежнему требует некоторой интерпретации (поскольку, когда мы перемещаем элемент
iframe
в DOM, мы действительно не делаем полногоremove
, даже если браузеры используютnode.removeChild
).