2012-10-31 12 views
10

Mam otwarte okno potomne po kliknięciu przycisku. W tym oknie zapisałem niektóre dane do bazy danych. Chcę wywołać inną funkcję skryptu java, gdy okno potomne jest blisko.Wywołanie funkcji wywołania zwrotnego po zamknięciu okna podrzędnego

Próbowałem już tego rozwiązania Set a callback function to a new window in javascript, ale nie działa.

Proszę mi powiedzieć, jak wywołać funkcję zwrotną?

Mam również ustawić jedno ukryte pole z okna podrzędnego po pomyślnym zapisaniu. Próbowałem ostrzec tę ukrytą wartość, ale jej alert przed aktualizacją.

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()); 
} 

funkcja oddzwaniania

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

trzeba pułapka zdarzenie onbeforeunload, który nie jest w 100% wiarygodne. –

+0

@MarcB Innym sposobem wywołania funkcji po zamkniętym oknie podrzędnym lub funkcji wywołania okna nadrzędnego z okna podrzędnego? – Hkachhia

Odpowiedz

14

można wywołać funkcję nadrzędną z okna dziecko w ten sposób:

window.opener.your_function() 

Aby wywołać funkcję dziecka w oknie parent:

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

Jeśli któraś z tych wskazówek pomoże, możesz pokazać nam, w jaki sposób została użyta metoda oddzwaniania.

Mam nadzieję, że to pomoże.

Pozdrawiam!

+0

Dzięki to jest dla mnie idealne – Hkachhia

-1

W przykładzie daliście nam funkcja jest wywoływana na razie obciążenia, więc trzeba zmienić go na ścisłej imprezy:

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

Nadal nie działa dla mnie – Hkachhia

+0

Uncaught TypeError: Nie można ustawić właściwości "onclose" o niezdefiniowanym – gstackoverflow

+0

to nie działa – Corci

Powiązane problemy