2012-02-14 17 views
20

Tôi đã mở cửa sổ bật lên bằng cách sử dụng window.open(). Điều tôi muốn bây giờ là để người dùng có thể nhấp vào một trong 2 liên kết trong cửa sổ mới này: "Cho phép" hoặc "Không cho phép".Cửa sổ bật lên để trả lại dữ liệu cho phụ huynh ở gần

Khi người dùng nhấp vào một trong các liên kết đó, cửa sổ 'cửa sổ bật lên' sẽ đóng và trả lại "cho phép" hoặc "không cho phép" hoặc điều gì đó dọc theo các đường đó, true/false sẽ làm, đến cửa sổ chính.

Có thể không? Nếu vậy, làm thế nào?

Code:

var authWindow = window.open('auth.php', 'authWindow', 'options...'); 

Sau đó chỉ cần 2 neo bên auth.php?

+0

bạn đã thử một cái gì đó cho riêng mình chưa? Bạn có thể sử dụng các cửa sổ bật lên phương thức –

+0

bạn có thể đăng mã không? – Unknown

+0

Mã được đăng? Mặc dù tôi không thực sự thấy sự cần thiết, haha. –

Trả lời

52

Trong cửa sổ gọi điện thoại (mẹ) thêm mã JS ví dụ:

function HandlePopupResult(result) { 
    alert("result of popup is: " + result); 
} 

Trong mã cửa sổ con thêm này:

function CloseMySelf(sender) { 
    try { 
     window.opener.HandlePopupResult(sender.getAttribute("result")); 
    } 
    catch (err) {} 
    window.close(); 
    return false; 
} 

Và có liên kết như vậy để đóng cửa sổ bật lên:

<a href="#" result="allow" onclick="return CloseMySelf(this);">Allow</a> 
<a href="#" result="disallow" onclick="return CloseMySelf(this);">Don't Allow</a> 
+0

chức năng CloseMySelf đang gây ra lỗi vì liên kết chỉ đi thẳng đến # và cửa sổ không đóng. –

+0

@ Xin lỗi, đã có lỗi trong mã của tôi .. xem ngay bây giờ. (trong JavaScript, 'catch' phải có dấu ngoặc sau) –

+0

Cảm ơn vì điều này :) –

4

bạn có thể sử dụng window.opener cho việc này.