【问题标题】:Passing a value from child window to parent将值从子窗口传递给父窗口
【发布时间】:2010-12-16 02:42:14
【问题描述】:

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

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

什么是可接受的方法?

【问题讨论】:

    标签: asp.net javascript parameter-passing


    【解决方案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%>);
    

    【讨论】:

    • 我如何区分 Jquery 中的“当 DB 调用从打开的窗口返回时”?当然,我可以通过各种方式检查 newID 是否为空。这是您的意思吗?
    • 修改答案以显示使用全局函数。您的 JQuery 代码可以存在于其中。 (我认为没有使函数全局化的更简单的方法。)
    【解决方案2】:

    如果你在子窗口中并且假设你的父窗口有对象 childResult:

    window.opener.childResult = "yourIdHere";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      相关资源
      最近更新 更多