Pertanyaan Buka munculan dan perbarui laman induk pada munculan tertutup


Saya membuka jendela popup oleh window.open di JavaScript, saya ingin me-refresh halaman induk ketika saya menutup jendela popup ini. (Onclose event?) Bagaimana saya bisa melakukannya?

window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");

75
2018-05-29 02:23


asal


Jawaban:


Anda dapat mengakses jendela induk menggunakan 'window.opener', jadi, tulis sesuatu seperti berikut di jendela anak:

<script>
    window.onunload = refreshParent;
    function refreshParent() {
        window.opener.location.reload();
    }
</script>

193
2018-05-29 02:35



Jendela pop-up tidak memiliki acara tertutup yang dapat Anda dengarkan.

Di sisi lain, ada properti tertutup yang diatur ke true ketika jendela ditutup.

Anda dapat mengatur timer untuk memeriksa properti yang ditutup dan melakukannya seperti ini:

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

Lihat ini bekerja contoh Fiddle!


29
2018-05-29 02:31



di halaman anak Anda, letakkan ini:

<script type="text/javascript">
    function refreshAndClose() {
        window.opener.location.reload(true);
        window.close();
    }
</script>

dan

<body onbeforeunload="refreshAndClose();">

tetapi sebagai desain UI yang baik, Anda harus menggunakan Tutup button karena lebih ramah pengguna. lihat kode di bawah ini.

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

11
2018-05-29 02:38



window.open akan mengembalikan referensi ke jendela yang baru dibuat, asalkan URL dibuka sesuai dengan Kebijakan Asal yang Sama.

Ini seharusnya berfungsi:

function windowClose() {
    window.location.reload();
}

var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;​

3
2018-05-29 02:42



Saya menggunakan ini:

<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()''>

ketika jendela menutupnya lalu me-refresh jendela induk.


3
2017-10-02 03:26



Jika aplikasi Anda berjalan di browser yang mendukung HTML5. Kamu dapat memakai postMessage. Contoh yang diberikan di sana sangat mirip dengan Anda.


1
2018-05-29 02:39



Dalam kasus saya, saya membuka jendela pop-up di klik pada linkbutton di halaman induk. Untuk menyegarkan orang tua menggunakan anak yang ditutup

window.opener.location.reload();

di jendela anak menyebabkan membuka kembali jendela anak (Mungkin karena Negara Tampilan saya kira. Koreksi saya Jika saya salah). Jadi saya memutuskan untuk tidak memuat ulang halaman di dalam induk dan memuat halaman itu lagi dengan menugaskan url yang sama untuk itu.

Untuk menghindari pembukaan popup lagi setelah menutup jendela sembulan, ini mungkin bisa membantu,

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

1
2018-06-27 13:02



Coba ini

        self.opener.location.reload(); 

Buka induk jendela saat ini dan muat ulang lokasi.


1
2017-09-16 10:41



Anda dapat mencapai halaman utama dengan perintah orang tua (orang tua adalah jendela) setelah langkah Anda dapat membuat segalanya ...

    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 + "");
    } 

0
2017-10-15 09:51



Anda dapat menggunakan kode di bawah ini di halaman induk.

<script>
    window.onunload = refreshParent;
    function refreshParent() {
      window.opener.location.reload();
    }
</script>

0
2017-11-03 04:37