Sebagai praktik yang baik, saya pikir itu ide yang baik untuk menguji apakah popup diblokir dan mengambil tindakan untuk berjaga-jaga. Anda perlu tahu bahwa window.open memiliki nilai kembali, dan nilai itu mungkin nol jika tindakan gagal. Misalnya, dalam kode berikut:
function pop(url,w,h) {
n=window.open(url,'_blank','toolbar=0,location=0,directories=0,status=1,menubar=0,titlebar=0,scrollbars=1,resizable=1,width='+w+',height='+h);
if(n==null) {
return true;
}
return false;
}
jika popup diblokir, window.open akan mengembalikan nol. Jadi fungsinya akan mengembalikan false.
Sebagai contoh, bayangkan memanggil fungsi ini langsung dari tautan apa pun dengan target="_blank"
: jika popup berhasil dibuka, kembali
false
akan memblokir tindakan tautan, jika tidak, popup diblokir, kembali true
akan membiarkan perilaku default (buka jendela _blank baru) dan lanjutkan .
<a href="http://whatever.com" target="_blank" onclick='return pop("http://whatever.com",300,200);' >
Dengan cara ini Anda akan memiliki popup jika berfungsi, dan jendela _blank jika tidak.
Jika popup tidak terbuka, Anda dapat:
- buka jendela kosong seperti pada contoh dan lanjutkan
- buka sembulan palsu (iframe di dalam laman)
- informasikan kepada pengguna ("perkenankan popup untuk situs ini")
- buka jendela kosong lalu beri tahu pengguna dll.