2008-10-04 25 views

回答

10

通過window.open()返回的引用是子窗口的window對象。所以,你可以做任何事情,你通常會做的,這裏有一個例子:

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

請記住,如果父和子窗口具有相同的域這隻會工作。否則跨站腳本安全限制會阻止你。

+0

它實際上是同源策略(http://www.w3.org/html/wg/html5/#same-origin)這基本上意味着你必須訪問頁面在相同的域上,在相同的端口上,並且使用相同的協議(例如https://example.com不能寫入http://example.com,https://example.com:8080等) – olliej 2008-10-04 07:34:10

0
myWindow.document.writeln(documentString) 
5

我認爲這樣做會有效果。

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

Vijesh提到的表單解決方案是在Windows之間溝通數據的基本思想。如果你正在尋找一些庫代碼,這裏有一個很棒的jQuery插件:WindowMsg(由於奇怪的Stack Overflow自動鏈接錯誤,請參閱底部的鏈接)。

正如我在我的回答中所述:How can I implement the pop out functionality of chat windows in GMail? WindowMsg在每個窗口中使用一個窗體,然後在窗口中使用window.document.form ['foo']散列進行通信。正如Dan在上面提到的,這隻有在窗口共享一個域時纔有效。

同樣如另一個線程中提到的,您可以使用JSON.org中的JSON 2 lib來以這種方式序列化在窗口之間發送的JavaScript對象,而不必單獨使用字符串進行通信。

WindowMsg:

http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/

相關問題