Как мне записать контент в другое окно браузера, используя Javascript? - PullRequest
11 голосов
/ 04 октября 2008

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

Ответы [ 4 ]

11 голосов
/ 04 октября 2008

Ссылка, возвращаемая window.open(), относится к объекту window дочернего окна. Таким образом, вы можете делать все, что обычно делаете, вот пример:

var myWindow = window.open('...')
myWindow.document.getElementById('foo').style.backgroundColor = 'red'

Имейте в виду, что это будет работать, только если родительское и дочернее окна имеют одинаковый домен . В противном случае ограничения безопасности межсайтовых сценариев остановят вас.

7 голосов
/ 04 октября 2008

Я думаю, что это поможет.

   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()

    } 
0 голосов
/ 04 октября 2008

Решение для форм, которое упоминает Виджеш, является основной идеей передачи данных между окнами. Если вы ищете какой-то библиотечный код, для этого есть отличный плагин jQuery: WindowMsg (см. Ссылку внизу из-за странной ошибки автосвязывания переполнения стека).

Как я описал в своем ответе здесь: Как я могу реализовать всплывающую функциональность окон чата в 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/

0 голосов
/ 04 октября 2008
myWindow.document.writeln(documentString)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...