我使用以下方法从现有页面创建了一个新的弹出窗口:
window.open("myUrl","myName","width=200,height=200");
现在在那个弹出窗口上我有一个文本输入和一个按钮,我想为按钮创建一个 onclick 方法,该方法将文本输入值发送到创建弹出窗口的页面而不使用表单或 php,这可能吗?
我使用以下方法从现有页面创建了一个新的弹出窗口:
window.open("myUrl","myName","width=200,height=200");
现在在那个弹出窗口上我有一个文本输入和一个按钮,我想为按钮创建一个 onclick 方法,该方法将文本输入值发送到创建弹出窗口的页面而不使用表单或 php,这可能吗?
您可以使用window.opener关键字
假设您的父类中有一个javascript方法 doSomething(value){....} ,然后从您的 POPUP 中您可以使用调用父函数
window.opener.doSomething("here is my data from child sent to parent");
更新
假设父窗口和新窗口都在同一个域上,你应该能够直接操作它们的 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或其他跨域消息传递技术。
任何打开的窗口调用都会形成对新窗口的获取请求。这是一种非常简单的方法,您可以使用 URL 本身传递要发送的参数,例如,
var myUrl = "http://example.com/test?myName=" + myName;
window.open(myUrl,"windowName","width=200,height=200");
现在在页面上,您可以获得 myName 作为请求参数。请试试这个。