Добавление одного и того же узла в разные окна
Я хочу добавить объект, который был создан в родительском окне в дочернее окно:
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);