2012-07-09 48 views
9

Tôi đang tạo cửa sổ bật lên đi đến hello.html. Tôi muốn trang gốc của tôi (trang gốc) tải lại khi tôi đóng cửa sổ bật lên (hello.html). Tôi không thể làm cho nó hoạt động được, nhưng tôi thân thiết. Dưới đây là đoạn code tôi có cho đến nay cho trang chính và trang hello.html ....Cửa sổ làm mới dành cho cha mẹ sau khi đóng cửa sổ bật lên

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function open_win() 
{ 
window.open("hello.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, width=400, height=400"); 
} 
</script> 


<script language="JavaScript"> 

function refreshParent() { 
    window.opener.location.href = window.opener.location.href; 

    if (window.opener.hello.html) 

{ 
    window.opener.hello.html.close() 
    } 
    window.close(); 
} 
</script> 


</head> 

<body> 

<script type="text/javascript"> 

var d=new Date(); 
document.write(d); 

</script> 

<form> 
<input type="button" value="Open Window" onclick="open_win()"> 
</form> 
</body> 
</html> 

Đây là hello.html ...

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
</script> 
</head> 
<body> 

Hello 

</body> 
</html> 
+0

Vui lòng kiểm tra điều này: http://stackoverflow.com/questions/18321323/submit-form-reload-parent-and-close-child/36855748#36855748 có thể giúp ai đó – NoNaMe

Trả lời

11

Theo dõi các unload event trong cửa sổ con và gọi cửa sổ cha mẹ từ cửa sổ con để thông báo rằng nó đang đóng!

Sửa Added một mẫu mã ...

function popupClosing() { 
    alert('About to refresh'); 
    window.location.href = window.location.href; 
} 

var w = window.open("hello.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, width=400, height=400"); 
w.onunload = function() { 
    window.parent.popupClosing() 
}; 
+0

Tôi không biết điều đó có nghĩa là gì ... –

+0

cảm ơn bạn .. tốt hơn nhiều :) –

3

làm nó như thế này, sau khi tạo popup giám sát "đóng" tài sản tình trạng của nó trong một khoảng thời gian. Nhưng điều này sẽ được thêm vào tài liệu gốc:

var pop = window.open("page.html", "popup", 
      "width=800,height=500,scrollbars=0,title='popup'"); 
    pop.focus(); 

    var monitor = setInterval(function() { 

     if (pop.closed) { 
      document.location.reaload() 
     } 

    }, 1000); 
+0

Đây là một giải pháp khá khó chịu, nhưng đó là giải pháp duy nhất làm việc cho tôi trong Chrome 55.0.2883.87. Tất cả các phương pháp khác sẽ hoạt động tốt trong một sự kiện onclick dẫn tôi tin rằng Chrome giới hạn việc này đối với chỉ các hành động do người dùng khởi tạo tương tự như thay đổi kích thước và di chuyển cửa sổ. – Shaun

2

Hãy thử đặt mã javascript này trong cửa sổ popup của bạn:

window.onunload = function(){ 
    window.opener.location.reload(); 
}; 

/kiện onunload sẽ kích hoạt khi bạn đóng cửa sổ popup của bạn, và window.opener .location.reload() sẽ tải lại cửa sổ nguồn (cha mẹ)./

1

trên nhấp chuột trường hợp chức năng cửa sổ bật lên gần Hãy thử ...

window.opener.location.reload(true); 
0

Đoạn mã này làm việc cũng như nếu một cửa sổ mới được popped với tính năng window.open.

setTimeout(function() { window.opener.location.reload(true); window.close();}, 3000); 
0

Đặt kịch bản này trong tiêu đề của cửa sổ popup của bạn:

<script type='text/javascript'> 
window.onunload = function(){ 
window.opener.location.reload();} 
</script> 

này sẽ tải lại cửa sổ cha mẹ khi bạn đóng cửa sổ bật lên.

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