这是我的场景:我有一个父网页,在我的 javascript 代码中打开一个新窗口。这个新窗口是一个服务器端的 aspx 页面。这个子页面需要在数据库中保存一些数据,保存后返回一个ID。现在,我需要将此 ID 从子服务器页面传递给父的 javascript。
本质上我需要子服务器代码来触发:1)将值返回给父页面的javascript代码2)关闭自身
什么是可以接受的方法?
这是我的场景:我有一个父网页,在我的 javascript 代码中打开一个新窗口。这个新窗口是一个服务器端的 aspx 页面。这个子页面需要在数据库中保存一些数据,保存后返回一个ID。现在,我需要将此 ID 从子服务器页面传递给父的 javascript。
本质上我需要子服务器代码来触发:1)将值返回给父页面的javascript代码2)关闭自身
什么是可以接受的方法?
在父页面中设置一个变量:
var dbID;
当 DB 调用从打开的窗口返回时,将其放置在打开的窗口的加载事件中(如果使用 jquery 或其他框架,则放置在就绪事件中):
window.opener.dbID = <%= newID %>
// or whatever your framework's technique is for this :-)
window.close();
您也可以使用相同的技术在父级上调用全局函数。
在“父”页面上:
function handleNewDBID(dbID) { alert("lookit me, i got an ID! " + dbID); }
在打开的窗口上:
window.opener.handleNewDBID(<%=newID%>);
如果您在子窗口中并假设您的父窗口有对象childResult:
window.opener.childResult = "yourIdHere";