2009-11-12 151 views
0

这里是我的场景:我有一个父网页,在我的JavaScript代码中,我打开一个新窗口。这个新窗口是一个服务器端的aspx页面。这个子页面需要在数据库中保存一些数据,保存后返回一个ID。现在,我需要将此ID从子级服务器页面传递给父级的JavaScript。将值从子窗口传递给父项

基本上我所需要的子服务器代码触发: 1)的值返回 父页面2的javascript代码)关闭本身

会是怎样做到这一点的可以接受的方式?

回答

1

设置父页面的变量:

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%>); 
+0

我如何区分“当从打开的窗口中DB调用返回” jQuery的?当然,我可以通过各种方式检查newID是否为null ..这就是你的意思? – sarsnake 2009-11-13 00:45:57

+0

修改了使用全局函数显示的答案。你的JQuery代码可以住在里面。 (我认为没有一个更简单的方法来做到这一点,而不使全局函数。) – roufamatic 2009-11-13 21:43:00

0

如果您在子窗口,并假设你的父窗口有反对childResult

window.opener.childResult = "yourIdHere"; 
相关问题