Beberapa situs, seperti StackExchange, memunculkan "Anda yakin ingin meninggalkan halaman ini?" dialog ketika Anda mencoba meninggalkan dalam kondisi tertentu, seperti jika Anda memiliki posting Anda belum selesai mengedit. Ini sangat membantu!
Sayangnya, situs jahat atau terinfeksi suka menggunakan fungsi yang sama untuk mengatakan, "Hei! Anda belum menginstal antivirus malware kami untuk mengatasi 111 virus yang kami jelas tidak bohongi tentang menemukan di komputer Anda!", Dan "Tinggalkan ini halaman "dan" Tetap di halaman ini "opsi digantikan oleh sesuatu seperti" Aman. Instal produk kami "dan" Tembak diri Anda di kaki ". Ini tidak membantu!
Javascript dapat melakukan beberapa hal jahat. Ketika saya mendapatkan salah satu dialog yang berusaha agar saya tidak meninggalkan situs yang jelas-jelas berbahaya, seperti apa respons saya? Apakah aman untuk mengklik "Tinggalkan halaman ini" atau apa pun yang mereka ganti dengan teks? Bisakah situs mengubah perilaku tombol, atau mencegat upaya saya untuk bernavigasi dan menggambar dialog palsu sendiri yang melakukan apa pun yang diinginkan penyerang ketika saya mengkliknya?
Jawaban:
Terlepas dari apa yang dikatakan beberapa dialog ini, mereka tidak dapat melakukan sesuatu yang berbahaya . Anda selalu dapat mengklik OK atau Tinggalkan Halaman untuk menutup halaman yang menyinggung tanpa konsekuensi apa pun.
Jika dialog terlalu panjang dan tombol tidak aktif , Anda dapat menekanEnter untuk mengkonfirmasi penutupan halaman.
Jika Anda tidak memiliki keyboard (perangkat layar sentuh), gunakan bookmarklet di bawah ini atau lihat jawaban SimpleSimon (hanya Chrome).
Sekarang, beberapa detail.
Hanya ada satu cara untuk melakukan beberapa tindakan saat halaman ditutup: melalui
onbeforeunload
acara. Tentu saja ini dapat dengan mudah digunakan terhadap pengguna (misalnya ketika ia mencoba untuk menutup halaman, itu membuka salinannya di jendela baru), jadi ini sangat terbatas.Sebenarnya satu-satunya hal wajar yang dapat Anda lakukan adalah membuka dialog dengan teks khusus dan dua tombol, satu untuk meninggalkan halaman dan satu untuk tetap. Hanya hal yang dapat dilakukan halaman dengan dialog itu adalah menentukan teksnya. Tombol dan titlebar tidak dapat diubah. Berikut screenshot dari Firefox 3.6: ( versi Firefox yang sangat lama)
Tentu saja ketika Anda membiarkan orang menampilkan sembulan dengan teks apa saja dan hanya tombol OK / Batalkan , maka Anda dapat yakin bahwa cepat atau lambat beberapa orang akan menggunakannya untuk melawan Anda.
Pada tangkapan layar di atas, OK berarti "Tinggalkan halaman ini", tetapi deskripsi khusus menyarankan sesuatu yang lebih. Jadi browser telah mengubah dialog sehingga lebih sulit untuk membuatnya menyesatkan. Misalnya, versi terbaru Firefox tampaknya mengabaikan teks khusus:
Chrome menunjukkan teks khusus, tetapi selalu menambahkan pertanyaan yang menanyakan kepada pengguna apa yang ingin dia lakukan dan tombol secara eksplisit menyatakan tindakan mereka: (tapi itu masih rentan terhadap pesan "video kucing"!)
Inilah Internet Explorer 10, juga "rawan kucing":
Opera 12 mengabaikan
onbeforeunload
acara tersebut dan jika Anda mencoba untuk menutup tab seperti itu, ia akan menutup sama seperti yang lain. Saya belum menguji Opera terbaru.Jadi, untuk meringkas hal-hal yang paling penting:
Anda dapat menonaktifkan
onbeforeunload
acara jika Anda ingin, secara efektif mencegah halaman meminta Anda untuk pergi atau tinggal. Berikut ini adalah skrip pengguna lintas-browser . (gulir ke bawah jika tautannya mati)Jika Anda berada di situs web tertentu yang menampilkan sembulan berbahaya dan Anda masih takut untuk mengklik Tinggalkan , Anda dapat membuat bookmarklet untuk menghapusnya. Klik kanan bilah bookmark Anda, pilih Bookmark baru (atau yang setara) dan tempel ini sebagai URL: (itu hanya kode yang diperkecil dari tautan di atas)
Kemudian cukup klik bookmark itu dan popup akan dihapus sementara dari halaman aktif.
Jika Anda ingin menguji bagaimana popup itu terlihat di browser Anda atau menguji bookmarklet / skrip pengguna, buat file teks dengan kode berikut dan simpan sebagai
.html
file:Tampaknya tautan skrip pengguna sudah mati sekarang, jadi inilah salinan yang diambil dari cache archive.org . Semua kredit untuk pembuat skrip asli.
sumber
Sebenarnya, FireFox memiliki solusi yang agak bagus (dan mudah). Jika Anda mengetik
ke bilah alamat, lalu gulir ke bawah ke
dan tetapkan nilainya ke True Anda tidak akan lagi melihat popup Tinggalkan Halaman. Di FireFox. Sayang sekali tidak ada solusi serupa di Chrome.
sumber
Solusi paling sederhana di Chrome adalah dengan tab crash.
Ketik chrome: // tabrak bilah alamat dan simpan sebagai bookmark .
Lain kali Anda ingin meninggalkan halaman seperti itu klik saja bookmark dan itu akan membunuh tab itu secara instan, tanpa mempengaruhi tab Anda yang lain. Tidak perlu mematikan seluruh sesi browser seperti yang disarankan beberapa orang lain.
Atau Anda dapat menggantung tab menggunakan chrome: // hang lalu cukup tutup tab tanpa menjalankan JavaScript.
Tidak yakin apakah ini dapat dilakukan di browser lain.
sumber
Ini adalah window.onbeforeunload acara dan fitur dari browser web. Jadi ini harus menjadi dialog tetap dari browser web. Anda dapat mencoba di berbagai browser dan agar Anda dapat melihat, dialog-dialognya ada dalam desain yang berbeda.
Tapi saya berasumsi, Anda bisa mengembangkan popup dengan javascript, yang terlihat sangat mirip dengan popup asli dari browser. Dan jika itu adalah pengembang yang baik, ia juga akan memeriksa jenis browser sebelum menampilkan dialog. ;)
Jadi untuk sangat yakin tentang dialog asli, Anda harus memeriksa silang secara paralel dengan dialog yang benar, yaitu di sini: http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/onbeforeunload.htm
Lihat di sini untuk informasi lebih lanjut tentang acara ini:
https://developer.mozilla.org/en-US/docs/Web/API/window.onbeforeunload
http://msdn.microsoft.com/en-us/library/ms536907% 28VS.85% 29.aspx
sumber
Solusi cepat jika Anda tidak mempercayai "popup" & niat / tindakannya:
Untuk Chrome:
Escape untuk menghapus sembulan
Klik kanan pada Halaman
Pilih Inspeksi
Gulir ke atas
Klik kanan pada tag
Hapus Node
Tutup Tab
Saya yakin browser lain memiliki opsi serupa.
sumber