Я открыл новое окно с помощью window.open () и хочу использовать ссылку из вызова window.open () для записи содержимого в новое окно. Я пробовал скопировать HTML из старого окна в новое окно с помощью myWindow.document.body.innerHTML = oldWindowDiv.innerHTML; но это не работает. Есть идеи?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


myWindow.document.writeln(documentString)
Я думаю, это поможет.
function popUp(){
var newWindow = window.open("","Test","width=300,height=300,scrollbars=1,resizable=1")
//read text from textbox placed in parent window
var text = document.form.input.value
var html = "<html><head></head><body>Hello, <b>"+ text +"</b>."
html += "How are you today?</body></html>"
newWindow .document.open()
newWindow .document.write(html)
newWindow .document.close()
}
Ссылка, возвращаемая window.open(), относится к объекту window дочернего окна. Итак, вы можете делать все, что обычно, вот пример:
var myWindow = window.open('...')
myWindow.document.getElementById('foo').style.backgroundColor = 'red'
Имейте в виду, что это будет работать, только если родительское и дочернее окна иметь тот же домен. В противном случае ограничения безопасности межсайтового скриптинга остановят вас.
что идет туда, где точки?
Решение формы, о котором упоминает Виджеш, является основной идеей обмена данными между окнами. Если вы ищете код библиотеки, есть отличный плагин jQuery именно для этого: WindowMsg (см. Ссылку внизу из-за странной ошибки автоматического связывания Stack Overflow).
Как я описал в своем ответе здесь: Как я могу реализовать всплывающие окна чата в GMail? WindowMsg использует форму в каждом окне, а затем хэш window.document.form ['foo'] для связи. Как упоминает Дэн выше, это работает, только если окно совместно использует домен.
Также, как упоминалось в другом потоке, вы можете использовать библиотеку JSON 2 с JSON.org для сериализации объектов javascript для отправки между окнами таким образом, вместо того, чтобы общаться исключительно с помощью строк.
WindowMsg:
http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/
На самом деле это та же политика происхождения (w3.org/html/wg/html5/#same-origin), что в основном означает, что вы должны получать доступ к странице в том же домене, на том же порте и с тем же протоколом (например, example.com не может писать в example.com, example.com:8080 и т. д.)