Rumah >hujung hadapan web >tutorial js >Bagaimana Mengendalikan Penutupan Tetingkap dan Peristiwa Muat Semula Halaman Tanpa Menganggur?

Bagaimana Mengendalikan Penutupan Tetingkap dan Peristiwa Muat Semula Halaman Tanpa Menganggur?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 08:41:11945semak imbas

How to Handle Window Closure and Page Refresh Events Unobtrusively?

Penutupan Tetingkap Tidak Menganggur dan Pengendalian Acara Muat Semula Halaman

Untuk melaksanakan kod semasa penutupan tetingkap penyemak imbas atau muat semula halaman, satu boleh menggunakan pendengar acara window.onbeforeunload dan window.ounload. Bergantung pada penyemak imbas, pendengar ini digunakan secara berbeza.

Sintaks untuk menetapkan pendengar ini sama ada dengan memberikannya terus kepada sifat tetingkap:

window.onbeforeunload = function(){
  // Code to execute on window closure or page refresh
};

Atau melalui kaedah addEventListener:

window.addEventListener("beforeunload", function(e){
  // Code to execute on window closure or page refresh
});

Secara lalai, pendengar onbeforeunload biasanya digunakan untuk menghalang pengguna daripada meninggalkan halaman secara tiba-tiba, terutamanya jika terdapat data yang tidak disimpan. Walau bagaimanapun, dengan mengenepikan rentetan pemulangan atau menetapkan e.returnValue kepada falsy, kod itu boleh dicetuskan tanpa memaparkan dialog pengesahan.

Perlu diperhatikan bahawa acara beforeunload mungkin tidak berfungsi dalam iframe apabila dipadamkan oleh induknya. Walau bagaimanapun, kedua-dua acara bongkar muat dan pagehide berkesan dalam senario ini dalam Chrome. Firefox, sebaliknya, mempamerkan pepijat yang menghalang peristiwa ini daripada dicetuskan apabila iframe dipadamkan oleh induknya.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Penutupan Tetingkap dan Peristiwa Muat Semula Halaman Tanpa Menganggur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn