Rumah >hujung hadapan web >tutorial js >Bagaimanakah saya boleh Melaksanakan Kod Sebelum Pengguna Menutup Tetingkap Penyemak Imbas atau Menyegarkan Halaman?

Bagaimanakah saya boleh Melaksanakan Kod Sebelum Pengguna Menutup Tetingkap Penyemak Imbas atau Menyegarkan Halaman?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-18 12:00:05369semak imbas

How do I Execute Code Before a User Closes the Browser Window or Refreshes the Page?

Laksanakan Kod Sebelum Penutupan Tetingkap atau Muat Semula Halaman

Untuk melaksanakan kod apabila pengguna menutup tetingkap penyemak imbas atau memuat semula halaman, pertimbangkan untuk menggunakan window.onbeforeunload dan window.ounload pengendali acara. Pengendali ini mempunyai gelagat berbeza bergantung pada penyemak imbas.

Menetapkan Pengendali Acara

Anda boleh menetapkan pengendali acara ini menggunakan sama ada penetapan harta atau kaedah addEventListener:

// Property assignment
window.onbeforeunload = function() { 
  // Code to execute
};

// Event listener
window.addEventListener("beforeunload", function(e) { 
  // Code to execute
});

window.onbeforeunload Acara

window.onbeforeunload biasanya digunakan untuk menghalang pengguna daripada meninggalkan halaman dengan perubahan yang tidak disimpan. Walau bagaimanapun, jika anda tidak mengembalikan rentetan atau set event.returnValue, acara akan melaksanakan kod secara senyap.

window.onunload Event

window.ounload ialah peristiwa yang lebih komprehensif yang dicetuskan sejurus sebelum halaman dipunggah. Ia membolehkan anda melakukan tugas seperti menjejak aktiviti pengguna atau menyimpan storan setempat.

Nota:

  • window.onbeforeunload mungkin tidak berfungsi dari dalam iframe yang dipadamkan oleh induk mereka dalam Firefox (sehingga Ogos 2023).
  • Pertimbangkan untuk menggunakan window.pagehide dan bukannya window.onbeforeunload untuk iframe dalam Firefox.

Atas ialah kandungan terperinci Bagaimanakah saya boleh Melaksanakan Kod Sebelum Pengguna Menutup Tetingkap Penyemak Imbas atau Menyegarkan Halaman?. 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