Я открыл новое окно с window.open(), и я хочу использовать ссылку из вызова window.open(), чтобы затем записать содержимое в новое окно. Я попытался скопировать HTML из старого окна в новое окно, используя myWindow.document.body.innerHTML = oldWindowDiv.innerHTML; но это не работает. Любые идеи?
Как написать контент в другое окно браузера с помощью Javascript?
Ответ 1
Ссылка, возвращаемая window.open()
, относится к объекту дочернего окна window
. Поэтому вы можете делать все, что вы обычно делаете, вот пример:
var myWindow = window.open('...')
myWindow.document.getElementById('foo').style.backgroundColor = 'red'
Помните, что это будет работать, только если родительский и дочерний окна имеют один и тот же домен. В противном случае ограничения безопасности межсайтового скриптинга остановят вас.
Ответ 2
Я думаю, что это сделает трюк.
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()
}
Ответ 3
myWindow.document.writeln(documentString)
Ответ 4
Решение формы, которое упоминает Vijesh, является основной идеей обмена данными между окнами. Если вы ищете какой-нибудь библиотечный код, там есть отличный плагин jQuery: WindowMsg (см. Ссылку внизу из-за странной ошибки автоматической привязки Stack Overflow).
Как я описал в своем ответе здесь: Как реализовать функциональность всплывающих окон чата в GMail? WindowMsg использует форму в каждом окне, а затем окно .document.form ['foo'] хэш для связи. Как упоминает Дэн, это работает только в том случае, если в окне используется домен.
Также как упоминалось в другом потоке, вы можете использовать JSON 2 lib от JSON.org для сериализации объектов javascript для отправки между окнами таким образом, а не для связи только с использованием строк.
WindowMsg:
http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/