Подтвердить что ты не робот

Вызов функции обратного вызова при закрытии дочернего окна

У меня есть открытое дочернее окно при нажатии кнопки. В этом окне я сохраняю некоторые данные в базе данных. Я хочу вызвать другую функцию java script, когда дочернее окно закрыто.

Я уже пробовал это Установить функцию обратного вызова в новое окно в 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");
}
4b9b3361

Ответ 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; };