2012-05-24 43 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