Saat mengedit halaman dalam sistem saya, pengguna mungkin memutuskan untuk menavigasi ke situs web lain dan dengan melakukannya dapat kehilangan semua hasil edit yang belum mereka simpan.
Saya ingin menghalangi upaya apa pun untuk membuka halaman lain dan meminta pengguna untuk memastikan bahwa mereka menginginkan hal ini terjadi karena mereka berpotensi kehilangan pekerjaan mereka saat ini.
Gmail melakukannya dengan cara yang sangat mirip. Misalnya, buat email baru, mulailah mengetik ke badan pesan dan masukkan lokasi baru di bilah alamat (katakan twitter.com atau sesuatu). Ini akan meminta "Apakah Anda yakin?"
Ide bagaimana mereplikasi ini? Saya menargetkan IE8, tetapi ingin kompatibel dengan FF & Chrome juga.
javascript
javascript-events
internet-explorer
Chris Ballance
sumber
sumber
Jawaban:
Mirip dengan jawaban Ghommey, tetapi ini juga mendukung versi lama IE dan Firefox.
sumber
var foo, bar;
adalah sama denganvar foo;
var bar;
Lihat artikel ini. Fitur yang Anda cari adalah onbeforeunload
Kode sampel:
sumber
Alih-alih munculan konfirmasi yang mengganggu, alangkah baiknya untuk menunda menyisakan sedikit (dalam hitungan milidetik) untuk mengelola dengan sukses memposting data yang belum disimpan ke server, yang saya kelola untuk situs saya menggunakan menulis teks tiruan ke konsol seperti ini:
Edit: Lihat juga Synchronous_AJAX dan bagaimana melakukannya dengan jquery
sumber
SCHEDULED_REQUEST
adalah objek yang mengakumulasikan informasi tidak mendesak yang harus dikirim ke server, seperti buffer data, secara efektif menggabungkan beberapa permintaan ke satu (tentu saja url permintaan ini sama). Menggunakan permintaan Synchronous Ajax sebelum membongkar harus menyelesaikan masalah lintas-browser seperti yang Anda katakan. Terima kasih atas komentar Anda yang berharga!Saya memiliki pengguna yang belum melengkapi semua data yang diperlukan.
sumber