Добавление одного и того же узла в разные окна

Я хочу добавить объект, который был создан в родительском окне в дочернее окно:

div = document.createElement( "div" );
document.body.appendChild( div );
// Here come div's atts;
render = window.open().document;
render.body.appendChild( div );

но новый DIV добавляется только к дочернему окну. Если я прокомментирую последнюю строку - div добавляется в родительское окно. Можно ли это решить?

2 ответа

Решение

Редактирование, так как я неправильно понял вопрос:

newelement = element.cloneNode(true); // true to clone children too

Тем не менее, в новом окне нет HTML или тела, к которому он может быть добавлен. По крайней мере, не в хроме.

Попробуйте это вместо этого:

<html>
<body>
    <script>
        div = document.createElement( "div" );
        // add some text to know if it's really there
        div.innerText = 'text of the div';
        document.body.appendChild( div );
        // Here come div's atts;
        render = window.open().document;
        // create the body of the new document
        render.write('<html><body></body></html>');
        // now you can append the div
        render.body.appendChild( div );
        alert(render.body.innerHTML);
    </script>
</body>
</html>

Вы пытались создать копию этого div и затем добавить его к ребенку вместо оригинального div?

Редактировать: Хорошо, тогда да, это будет функция cloneNode.

clone = div.cloneNode(true);
render = window.open().document;
render.body.appendChild(clone);
Другие вопросы по тегам