Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menghalang Pengguna daripada Kehilangan Data Borang Tidak Disimpan Apabila Meninggalkan Halaman?

Bagaimanakah Saya Boleh Menghalang Pengguna daripada Kehilangan Data Borang Tidak Disimpan Apabila Meninggalkan Halaman?

Linda Hamilton
Linda Hamiltonasal
2024-11-25 03:57:13968semak imbas

How Can I Prevent Users from Losing Unsaved Form Data When Leaving a Page?

Mencegah Perubahan Tidak Disimpan pada Pengabaian Halaman

Apabila pengguna menavigasi keluar dari halaman dengan data borang yang tidak disimpan, adalah penting untuk menggesa mereka mengesahkan mereka niat untuk mengelakkan kehilangan kerja mereka. Untuk melaksanakan ini:

Pendekatan Ringkas tetapi Terhad:

window.addEventListener("beforeunload", function (e) {
  e.returnValue = "Warning: Unsaved changes. Are you sure you want to leave?";
});

Pendekatan ini, walau bagaimanapun, mencetuskan mesej pengesahan walaupun apabila data borang diserahkan, memerlukan penyelesaian.

Penyelesaian Komprehensif dengan Kotor Bendera:

Untuk mengelakkan mesej pengesahan daripada muncul pada daun halaman yang tidak berkaitan, gunakan bendera "kotor" yang menunjukkan apabila data borang telah ditukar.

const isDirty = () => false;

window.addEventListener("beforeunload", function (e) {
  if (formSubmitting || !isDirty()) {
    return;
  }

  e.returnValue = "Warning: Unsaved changes. Are you sure you want to leave?";
});

Laksanakan isDirty kaedah menggunakan:

  • Pendekatan berasaskan acara: Pantau interaksi pengguna untuk mengesan perubahan, tetapi pertimbangkan pengehadan seperti tidak mencetuskan pemotongan dan penampalan.
  • jQuery Dirty Plugin: Pustaka yang mudah untuk mengesan perubahan borang dan menghalang keluar halaman dengan mesej tersuai.

Amaran: Sokongan Penyemak Imbas Terhad

Perhatikan bahawa pengesahan tersuai mesej tidak lagi disokong dalam sesetengah penyemak imbas, seperti Chrome 51 dan lebih baharu. Alternatif termasuk memaparkan dialog generik dengan butang "Tinggalkan" dan "Tinggal".

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Pengguna daripada Kehilangan Data Borang Tidak Disimpan Apabila Meninggalkan 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