Saya ingin membuat konfirmasi sebelum pengguna meninggalkan halaman. Jika dia bilang ok maka itu akan mengarahkan ke halaman baru atau membatalkan untuk pergi. Saya mencoba membuatnya dengan onunload
<script type="text/javascript">
function con() {
var answer = confirm("do you want to check our other products")
if (answer){
alert("bye");
}
else{
window.location = "http://www.example.com";
}
}
</script>
</head>
<body onunload="con();">
<h1 style="text-align:center">main page</h1>
</body>
</html>
Tapi itu mengkonfirmasi setelah halaman sudah ditutup? Bagaimana cara melakukannya dengan benar?
Akan lebih baik jika seseorang menunjukkan cara melakukannya dengan jQuery?
javascript
jquery
kd7
sumber
sumber
Jawaban:
onunload
(atauonbeforeunload
) tidak dapat mengalihkan pengguna ke halaman lain. Ini untuk alasan keamanan.Jika Anda ingin menampilkan prompt sebelum pengguna meninggalkan halaman, gunakan
onbeforeunload
:Atau dengan jQuery:
Ini hanya akan bertanya kepada pengguna apakah mereka ingin meninggalkan halaman atau tidak, Anda tidak dapat mengarahkan mereka jika mereka memilih untuk tetap berada di halaman. Jika mereka memilih untuk pergi, browser akan pergi ke tempat yang mereka perintahkan.
Anda dapat menggunakan
onunload
untuk melakukan hal-hal sebelum halaman diturunkan, tetapi Anda tidak dapat mengalihkan dari sana (Chrome 14+ blok lansiran di dalamonunload
):Atau dengan jQuery:
sumber
onbeforeunload
, browser menempatkan string itu ke dalam kotak konfirmasi sendiri. Penggunaanconfirm
tidak berguna dionunload
danonbeforeunload
, karena hanya browser yang dapat mengontrol ke mana perginya, bukan Anda. Lihat demo ini: jsfiddle.net/3kvAConbeforeunload
,return false
akan membuat browser menampilkan "false" dalam dialog. Anda perlureturn undefined
jika Anda ingin membiarkan jendela ditutup tanpa ada peringatan pengguna.Kode ini saat Anda juga mendeteksi status formulir berubah atau tidak.
Anda dapat menjalankan fungsi Google JQuery Form Serialize, ini akan mengumpulkan semua input formulir dan menyimpannya dalam array. Saya kira penjelasan ini sudah cukup :)
sumber
Ini akan mengingatkan saat meninggalkan halaman saat ini
sumber
Ini yang saya lakukan untuk menampilkan pesan konfirmasi tepat ketika saya belum menyimpan data
mengembalikan "tidak terdefinisi" akan menonaktifkan konfirmasi
Catatan: mengembalikan "null" tidak akan berfungsi dengan IE
Anda juga dapat menggunakan "tidak terdefinisi" untuk menonaktifkan konfirmasi
sumber
Agar popop dengan Chrome 14+, Anda perlu melakukan hal berikut:
Pengguna akan ditanya apakah ia ingin tinggal atau pergi.
sumber
jQuery(document)
dan saya sarankan untuk meletakkannya tepat setelah semua plugin Anda dimuat. Juga, cuplikan ini tidak memberikan peringatan ... ini hanya demoreturn
.Anda dapat menggunakan satu-liner berikut untuk selalu bertanya kepada pengguna sebelum meninggalkan halaman.
Untuk menanyakan kepada pengguna ketika sesuatu di halaman telah dimodifikasi, lihat jawaban ini .
sumber
Biasanya Anda ingin menampilkan pesan ini, ketika pengguna telah membuat perubahan dalam formulir, tetapi mereka tidak disimpan.
Ambil pendekatan ini untuk menampilkan pesan, hanya ketika pengguna telah mengubah sesuatu
sumber
https://www.w3schools.com/tags/ev_onbeforeunload.asp
sumber
Sebagian besar solusi di sini tidak bekerja untuk saya, jadi saya menggunakan yang ditemukan di sini
Saya juga menambahkan variabel untuk mengizinkan kotak konfirmasi atau tidak
sumber
Hanya sedikit lebih bermanfaat, aktifkan dan nonaktifkan
sumber