Как написать контент в другое окно браузера с помощью Javascript?

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

Ответ 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/