13

ボタンをクリックすると子ウィンドウが開きます。このウィンドウでは、データベースにデータを保存しています。子ウィンドウが閉じているときに別のJavaスクリプト関数を呼び出したい。

私はすでにこれを試しましたが、javascriptソリューションの新しいウィンドウにコールバック関数を設定しますが、機能していません。

では、コールバック関数の呼び出し方を教えてください。

保存に成功した後、子ウィンドウから1つの非表示フィールドを設定しました。この非表示の値を警告しようとしましたが、更新する前に警告します。

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 に答える