2012-10-31 35 views
10

Tôi đã mở cửa sổ con khi nhấp vào nút. Trong cửa sổ này, tôi đã lưu một số dữ liệu vào cơ sở dữ liệu. Tôi muốn gọi một hàm tập lệnh java khác khi cửa sổ con đóng.Gọi lại chức năng gọi lại khi cửa sổ con đóng

Tôi đã thử giải pháp Set a callback function to a new window in javascript này nhưng không hoạt động.

Vì vậy, hãy cho tôi biết cách gọi hàm gọi lại?

Tôi cũng đã đặt một trường ẩn từ cửa sổ con sau khi lưu thành công.Tôi đã cố gắng cảnh báo giá trị ẩn này nhưng cảnh báo của nó trước khi cập nhật.

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

chức năng gọi lại

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

bạn cần phải bẫy sự kiện onbeforeunload, mà không phải là 100% đáng tin cậy. –

+0

@MarcB Bất kỳ cách nào khác để gọi hàm sau khi cửa sổ con gần hoặc chức năng gọi của cửa sổ mẹ từ cửa sổ con? – Hkachhia

Trả lời

14

Bạn có thể gọi một hàm cha mẹ từ cửa sổ con theo cách này:

window.opener.your_function() 

Để gọi một hàm con trong cửa sổ cha mẹ:

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

Nếu bất kỳ mẹo nào trong số này giúp bạn, bạn có thể cho chúng tôi biết cách bạn sử dụng cách gọi lại.

Hy vọng điều này sẽ giúp bạn.

Trân trọng!

+0

Cảm ơn nó là hoàn hảo cho tôi – Hkachhia

-1

Trong ví dụ này bạn đã cho chúng tôi hàm được gọi về sự kiện tải, vì vậy bạn phải thay đổi nó với về sự kiện gần:

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

Vẫn không làm việc cho tôi – Hkachhia

+0

Uncaught TypeError: Không thể đặt thuộc tính 'onclose' của undefined – gstackoverflow

+0

nó không hoạt động – Corci

Các vấn đề liên quan