13

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

我已经尝试过在 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");
}
4

2 回答 2

19

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

window.opener.your_function()

在父窗口中调用子函数:

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

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

希望这对您有所帮助。

问候!

于 2012-10-31T05:29:22.520 回答
-1

在您给我们的示例中,该函数在加载事件时被调用,因此您必须使用关闭事件来更改它:

// 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; };
于 2012-10-31T05:31:41.347 回答