ฉันเปิดหน้าต่างป๊อปอัปข้าง window.open ใน JavaScript ฉันต้องการรีเฟรชหน้าหลักเมื่อฉันปิดหน้าต่างป๊อปอัปนี้ (onclose event?) ฉันจะทำอย่างไร
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
ฉันเปิดหน้าต่างป๊อปอัปข้าง window.open ใน JavaScript ฉันต้องการรีเฟรชหน้าหลักเมื่อฉันปิดหน้าต่างป๊อปอัปนี้ (onclose event?) ฉันจะทำอย่างไร
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
คำตอบ:
คุณสามารถเข้าถึงหน้าต่างหลักโดยใช้ ' window.opener ' ดังนั้นเขียนสิ่งต่อไปนี้ในหน้าต่างลูก:
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
popupWindow.closed
โดยใช้setInterval
like ในโซลูชันของ @ Zuul
หน้าต่างป๊อปอัปไม่มีเหตุการณ์ปิดที่คุณสามารถฟังได้
ในทางกลับกันมีคุณสมบัติปิดที่ตั้งค่าเป็นจริงเมื่อหน้าต่างถูกปิด
คุณสามารถตั้งเวลาเพื่อตรวจสอบคุณสมบัติที่ปิดแล้วและดำเนินการดังนี้:
var win = window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no");
var timer = setInterval(function() {
if(win.closed) {
clearInterval(timer);
alert('closed');
}
}, 1000);
ในหน้าย่อยของคุณให้ใส่สิ่งเหล่านี้:
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
และ
<body onbeforeunload="refreshAndClose();">
แต่ในการออกแบบ UI ที่ดีคุณควรใช้การปิดbutton
เนื่องจากเป็นมิตรกับผู้ใช้มากกว่า ดูรหัสด้านล่าง
<script type="text/javascript">
$(document).ready(function () {
$('#btn').click(function () {
window.opener.location.reload(true);
window.close();
});
});
</script>
<input type='button' id='btn' value='Close' />
ฉันใช้สิ่งนี้:
<script language='javascript'>
var t;
function doLoad() {
t = setTimeout("window.close()",1000);
}
</script>
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
<body onbeforeunload="refreshAndClose();" onLoad='doLoad()''>
เมื่อหน้าต่างปิดลงจะรีเฟรชหน้าต่างหลัก
window.open จะกลับอ้างอิงไปยังหน้าต่างที่สร้างขึ้นใหม่ให้สอดคล้อง URL ที่เปิดกับเดียวกันนโยบายแหล่งกำเนิดสินค้า
สิ่งนี้ควรใช้งานได้:
function windowClose() {
window.location.reload();
}
var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;
ในกรณีของฉันฉันเปิดหน้าต่างป๊อปอัปเมื่อคลิกที่ปุ่มลิงก์ในหน้าหลัก ในการรีเฟรชพาเรนต์เมื่อปิดลูกโดยใช้
window.opener.location.reload();
ในหน้าต่างลูกทำให้เปิดหน้าต่างลูกอีกครั้ง (อาจเป็นเพราะดูสถานะฉันเดาถูกต้องฉันถ้าฉันผิด) ดังนั้นฉันจึงตัดสินใจที่จะไม่โหลดหน้าเพจซ้ำในพาเรนต์และโหลดเพจอีกครั้งโดยกำหนด url เดียวกันให้
เพื่อหลีกเลี่ยงการเปิดป๊อปอัปอีกครั้งหลังจากปิดหน้าต่างป๊อปอัปสิ่งนี้อาจช่วยได้
window.onunload = function(){
window.opener.location = window.opener.location;};
ลองทำตามนี้
self.opener.location.reload();
เปิดพาเรนต์ของหน้าต่างปัจจุบันและโหลดตำแหน่งใหม่
คุณสามารถเข้าถึงหน้าหลักด้วยคำสั่งพาเรนต์ (พาเรนต์คือหน้าต่าง) หลังจากขั้นตอนคุณสามารถทำทุกอย่าง ...
function funcx() {
var result = confirm('bla bla bla.!');
if(result)
//parent.location.assign("http://localhost:58250/Ekocc/" + document.getElementById('hdnLink').value + "");
parent.location.assign("http://blabla.com/" + document.getElementById('hdnLink').value + "");
}
คุณสามารถใช้รหัสด้านล่างในหน้าหลัก
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
รหัสต่อไปนี้จะจัดการเพื่อรีเฟรชหน้าต่างแม่โพสต์ปิด
function ManageQB_PopUp() {
$(document).ready(function () {
window.close();
});
window.onunload = function () {
var win = window.opener;
if (!win.closed) {
window.opener.location.reload();
}
};
}