Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Melaksanakan 'Tinggalkan Halaman?' Pengesahan untuk Perubahan Tidak Disimpan?

Bagaimana untuk Melaksanakan 'Tinggalkan Halaman?' Pengesahan untuk Perubahan Tidak Disimpan?

Barbara Streisand
Barbara Streisandasal
2024-12-01 15:50:14409semak imbas

How to Implement a

Bagaimana untuk Melaksanakan "Adakah anda pasti mahu menavigasi keluar dari halaman ini?" Pengesahan Apabila Perubahan Tidak Disimpan Wujud

Apabila menyemak imbas halaman web, pengguna mungkin menghadapi gesaan pengesahan yang muncul sebelum menavigasi keluar dari halaman yang perubahan belum disimpan telah dibuat. Pengesahan ini berfungsi untuk memaklumkan pengguna bahawa perubahan mereka yang belum disimpan akan hilang jika mereka meneruskan. Artikel ini meneroka cara melaksanakan fungsi ini, menangani cabaran khusus yang dihadapi dalam penyemak imbas dengan keupayaan berbeza.

Satu kaedah melibatkan memanfaatkan peristiwa window.onbeforeunload. Dari segi sejarah, acara ini boleh diberikan nilai rentetan untuk memaparkan mesej pengesahan tersuai, tetapi penyemak imbas moden menganggap ini sebagai bahaya keselamatan dan kini hanya memaparkan mesej generik. Hasilnya, pelaksanaan telah dipermudahkan kepada perkara berikut:

// Enable navigation prompt
window.onbeforeunload = function() {
    return true;
};

// Remove navigation prompt
window.onbeforeunload = null;

Untuk sokongan pelayar lama, pendekatan yang lebih komprehensif diperlukan. Acara window.onbeforeunload mesti diberikan rujukan fungsi dan dalam penyemak imbas lama, sifat returnValue acara mesti ditetapkan:

var confirmOnPageExit = function (e) {
    // Get the event object
    e = e || window.event;

    // Set the return value to display the message
    if (e) {
        e.returnValue = 'Confirm exit? Unsaved changes will be lost.';
    }

    // Return the message for newer browsers
    return 'Confirm exit? Unsaved changes will be lost.';
};

Untuk menogol gesaan pengesahan, hanya tetapkan fungsi confirmOnPageExit ke tetingkap. onbeforeunload untuk mendayakannya dan mengalih keluar fungsi untuk melumpuhkannya:

// Turn it on
window.onbeforeunload = confirmOnPageExit;

// Turn it off
window.onbeforeunload = null;

Untuk menjejaki perubahan yang tidak disimpan, adalah perlu untuk bergantung pada rangka kerja pengesahan khusus yang digunakan. Contohnya, dalam jQuery, coretan kod berikut menunjukkan cara memantau perubahan pada medan input dan mencetuskan gesaan pengesahan:

$('input').change(function() {
    if( $(this).val() != "" ) {
        window.onbeforeunload = confirmOnPageExit;
    }
});

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan 'Tinggalkan Halaman?' Pengesahan untuk Perubahan Tidak Disimpan?. 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