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
Lepaskan: 2024-11-25 03:57:13
asal
954 orang telah melayarinya

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?";
});
Salin selepas log masuk

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?";
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan