这里是我的场景:我有一个父网页,在我的JavaScript代码中,我打开一个新窗口。这个新窗口是一个服务器端的aspx页面。这个子页面需要在数据库中保存一些数据,保存后返回一个ID。现在,我需要将此ID从子级服务器页面传递给父级的JavaScript。将值从子窗口传递给父项
基本上我所需要的子服务器代码触发: 1)的值返回 父页面2的javascript代码)关闭本身
会是怎样做到这一点的可以接受的方式?
这里是我的场景:我有一个父网页,在我的JavaScript代码中,我打开一个新窗口。这个新窗口是一个服务器端的aspx页面。这个子页面需要在数据库中保存一些数据,保存后返回一个ID。现在,我需要将此ID从子级服务器页面传递给父级的JavaScript。将值从子窗口传递给父项
基本上我所需要的子服务器代码触发: 1)的值返回 父页面2的javascript代码)关闭本身
会是怎样做到这一点的可以接受的方式?
设置父页面的变量:
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";
我如何区分“当从打开的窗口中DB调用返回” jQuery的?当然,我可以通过各种方式检查newID是否为null ..这就是你的意思? – sarsnake 2009-11-13 00:45:57
修改了使用全局函数显示的答案。你的JQuery代码可以住在里面。 (我认为没有一个更简单的方法来做到这一点,而不使全局函数。) – roufamatic 2009-11-13 21:43:00