子窗口关闭时的回调函数调用

时间:2012-10-31 05:13:50

标签: javascript

单击按钮时,我打开了子窗口。在此窗口中,我将一些数据保存到数据库中。 我想在子窗口关闭时调用另一个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");
}

2 个答案:

答案 0 :(得分:14)

您可以通过以下方式从子窗口调用父函数:

window.opener.your_function()

在父窗口中调用子函数:

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

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

希望这会对你有所帮助。

问候!

答案 1 :(得分:-1)

在您给我们的示例中,函数在load事件上调用,因此您必须在close事件中更改它:

// 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; };