2012-05-24 42 views
2

我從現有頁面創建一個新的彈出窗口單獨的窗口:發送數據給JavaScript

window.open("myUrl","myName","width=200,height=200"); 

現在,彈出窗口我有一個文本輸入和一個按鈕上,我想創建一個onclick方法發送文本輸入值到不使用窗體或php創建彈出窗口的頁面的按鈕,這可能嗎?

+2

http://stackoverflow.com/questions/9994120/javascript-pass-selected-value-from-popup-window-to-parent-window-input-box/10407064#10407064 –

回答

6

可以使用window.opener關鍵字

可以說你有一個JavaScript方法DoSomething的(值){....}在你的父類,然後從彈出式窗口,你可以調用父功能使用

window.opener.doSomething("here is my data from child sent to parent"); 

修訂

+0

準確地說我該怎麼做: ) –

+0

是的,這工作'window.opener' Thanx – Anomaly

2

假設雙方父母和新的窗口都在同一個域,你應該能夠直接操縱ŧ繼承人JS環境:

var w = window.open("myUrl", "myName", "width=200,height=200"); 
var e = w.document.getElementById('someId'); 
// do something with element e 

如果他們在不同的領域,你可能需要使用window.postMessage或其他跨域通訊技術,如果window.postMessage不被你的目標瀏覽器支持。

+0

錯誤的方向 – mplungjan

+0

爲什麼?他希望在創建的窗口中的元素上添加一個處理程序,該窗口在父窗口中執行某些操作。這可以在任一方向完成。 – lanzz

+0

但從孩子到父母的語法是不同的 - 它在兒童中被觸發 – mplungjan

0

任何打開的窗口調用都會形成對新窗口的獲取請求。這是你傳遞你想使用URL本身就像送PARAMS很簡單的辦法,

var myUrl = "http://example.com/test?myName=" + myName; 
window.open(myUrl,"windowName","width=200,height=200"); 

現在頁面上,你可以得到MYNAME作爲請求參數。請試試這個。

+0

更正了語法 –

+0

方向錯誤 – mplungjan