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:
- Halaman tidak dapat menampilkan dialog dengan teks apa pun. Situs web dapat meminta browser untuk menampilkan dialog dengan teks khusus, tetapi browser dapat mengabaikannya sama sekali (Opera), menggunakan teks umum (Firefox) atau secara eksplisit mengatakan apa yang akan terjadi (Chrome, IE).
- Detail dialog tergantung pada browser yang Anda gunakan, tetapi tombol selalu tidak berubah. Jika mereka tidak akan mengatakan secara eksplisit mana yang melakukan apa, maka OK berarti "tinggalkan halaman ini * dan Batal adalah" tetap di sini ".
- Situs web tidak dapat melakukan tindakan jahat jika Anda memutuskan untuk meninggalkannya. File Anda tidak akan diganti dengan video kucing, Anda tidak akan dibanjiri dengan 135234 virus dan FBI tidak akan diberitahu bahwa Anda memiliki perangkat lunak ilegal di komputer Anda.
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)
javascript:var x=document.createElement('script');x.type='text/javascript';x.innerHTML='onbeforeunload=function(){};';document.body.appendChild(x);
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:
<html><body onbeforeunload="return 'My custom text.'">_</body></html>
Tampaknya tautan skrip pengguna sudah mati sekarang, jadi inilah salinan yang diambil dari cache archive.org . Semua kredit untuk pembuat skrip asli.
// ==UserScript==
// @name Disable - remove onbeforeunload
// @namespace
// @description Disable - remove the annoying onbeforeunload event
// @include *
// @author netvisiteurs.com
// ==/UserScript==
var x = document.createElement('script');
x.type = 'text/javascript';
x.innerHTML = 'onbeforeunload = function() {};';
document.body.appendChild(x);