【问题标题】:Callback function call when child window is close子窗口关闭时的回调函数调用
【发布时间】:2012-10-31 05:13:50
【问题描述】:

点击按钮时我打开了子窗口。在这个窗口中我已经将一些数据保存到数据库中。 我想在子窗口关闭时调用另一个 java 脚本函数。

我已经尝试过这个Set a callback function to a new window in javascript 解决方案,但它不起作用。

那么请告诉我如何调用回调函数?

成功保存后,我还在子窗口中设置了一个隐藏字段。我试图提醒这个隐藏值,但在更新之前它会提醒。

function open_child()
{
    $("#child_succ").val(0);
    alert($("#child_succ").val());
    window.open("child.php","Ratting","width=550,height=300,left=150,top=200,toolbar=1,status=1");
    alert($("child_succ").val());
}

回调函数

function test()
{
    alert("called from child window");
}

【问题讨论】:

  • 你需要捕获onbeforeunload事件,它不是100%可靠的。
  • @MarcB 在关闭子窗口后调用函数或从子窗口调用父窗口函数的任何其他方式?

标签: javascript


【解决方案1】:

你可以这样从子窗口调用父函数:

window.opener.your_function()

在父窗口中调用子函数:

var w = window.open(somelocation,''); //has a function on `window` called "test"
w.test();

如果这些提示对您有帮助,您可以向我们展示您是如何使用回调方法的。

希望对你有所帮助。

问候!

【讨论】:

    【解决方案2】:

    在你给我们的例子中,函数是在加载事件时调用的,所以你必须用关闭事件来改变它:

    // This function is defined in the child window
    var RunCallbackFunction = function() { }; //reference holder only
    
    
    // ---------------------------------------------------------------------------
    
    
    // This code should appear in the parent window
    //random function you want to call
    
    function myFunc() { alert("I'm a function in the parent window"); }
    
    //to actually open the window..
    var win = window.open("window.html");
    win.onclose = function() { win.RunCallbackFunction = myFunc; };
    

    【讨论】:

    • 未捕获的类型错误:无法设置未定义的属性“onclose”
    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多