windowFeatures Sebuah string yang menentukan berbagai fitur jendela untuk disertakan dalam jendela popup (seperti status bar, address bar dll) Kode berikut membuka jendela browser baru dengan fitur standar
window.open ("//jsc.simfatic-solutions.com","mywindow");
Mengubah fitur Popup
Anda dapat mengontrol fitur popup menggunakan argumen terakhir ke jendela. metode terbuka. Kode berikut membuka jendela dengan bilah status dan tanpa fitur tambahan
window.open ("//jsc.simfatic-solutions.com","mywindow","status=1"); _
Kode di bawah membuka jendela dengan bilah alat dan bilah status
window.open ("//jsc.simfatic-solutions.com", "mywindow","status=1,toolbar=1");
Tabel menampilkan fitur dan token string yang dapat Anda gunakan
status
Bilah status di bagian bawah jendela
bilah alat
Bilah alat browser standar, dengan tombol seperti Mundur dan Maju
lokasi
Kolom entri Lokasi tempat Anda memasukkan URL
bilah menu
Bilah menu jendela
direktori
Tombol direktori browser standar, seperti Yang Baru dan Yang Keren
dapat diubah ukurannya
Izinkan/Larang pengguna untuk mengubah ukuran jendela
scrollbar
Aktifkan bilah gulir jika dokumen lebih besar dari jendela
tinggi
Menentukan tinggi jendela dalam piksel. (contoh. tinggi = '350')
lebar
Menentukan lebar jendela dalam piksel
Contoh
Kode berikut membuka jendela dengan bilah menu. Jendela dapat diubah ukurannya dan memiliki lebar 350 piksel dan tinggi 250 piksel
window.open ("//jsc.simfatic-solutions.com","mywindow","menubar=1,resizable=1,width=350,height=250");
Contoh 1
Jendela dengan bilah lokasi, bilah status, bilah gulir, dan ukuran 100 X 100
window.open ("//jsc.simfatic-solutions.com", "mywindow","location=1,status=1,scrollbars=1, width=100,height=100"); _
Contoh 2
Memindahkan jendela ke lokasi yang diinginkan
Anda dapat menggunakan jendela. moveTo berfungsi untuk memindahkan jendela popup ke lokasi yang diinginkan. Kode di bawah menunjukkan posisi popup di lokasi yang diinginkan
function mypopup() { mywindow = window.open("//jsc.simfatic-solutions.com", "mywindow", "location=1,status=1,scrollbars=1, width=100,height=100"); mywindow.moveTo(0, 0); }
Kode memposisikan popup di sudut kiri atas layar
Menyatukan semuanya
Sekarang kami akan menggabungkan semua informasi ini untuk membuat jendela sembulan dari berbagai jenis. Kode di bawah ini membuka jendela sembulan saat Anda memasuki halaman
<html> <head> <title>JavaScript Popup Example 3</title> </head> <script type="text/javascript"> function poponload() { testwindow = window.open("", "mywindow", "location=1,status=1,scrollbars=1,width=100,height=100"); testwindow.moveTo(0, 0); } </script> <body onload="javascript: poponload()"> <h1>JavaScript Popup Example 3</h1> </body> </html> _
Perhatikan bahwa URL dibiarkan kosong. Ini akan membuka jendela kosong. Anda dapat melihat kode yang sedang bekerja di file ini. Contoh Munculan JavaScript 3
…Dan itu akan membuka jendela baru dengan URL yang diberikan. Sebagian besar browser modern dikonfigurasikan untuk membuka url di tab baru, bukan di jendela terpisah
Munculan ada dari zaman yang sangat kuno. Ide awalnya adalah menampilkan konten lain tanpa menutup jendela utama. Sampai sekarang, ada cara lain untuk melakukan itu. kita dapat memuat konten secara dinamis dengan mengambil dan menampilkannya dalam <div> yang dihasilkan secara dinamis. Jadi, popup bukanlah sesuatu yang kita gunakan setiap hari
Selain itu, munculan rumit pada perangkat seluler, yang tidak menampilkan banyak jendela secara bersamaan
Namun, ada tugas di mana popup masih digunakan, mis. g. untuk otorisasi OAuth (masuk dengan Google/Facebook/…), karena
- Munculan adalah jendela terpisah yang memiliki lingkungan JavaScript independennya sendiri. Jadi membuka sembulan dari situs pihak ketiga yang tidak tepercaya itu aman
- Sangat mudah untuk membuka popup
- Munculan dapat menavigasi (mengubah URL) dan mengirim pesan ke jendela pembuka
Di masa lalu, situs jahat sering menyalahgunakan popup. Halaman yang buruk dapat membuka banyak jendela sembulan dengan iklan. Jadi sekarang sebagian besar browser mencoba memblokir popup dan melindungi pengguna
Sebagian besar browser memblokir munculan jika dipanggil di luar penangan peristiwa yang dipicu pengguna seperti // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };0
Misalnya
// popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };
Dengan cara ini pengguna agak terlindungi dari sembulan yang tidak diinginkan, tetapi fungsinya tidak sepenuhnya dinonaktifkan
Sintaks untuk membuka popup adalah. // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };1
urlSebuah URL untuk memuat ke jendela baru. nameNama jendela baru. Setiap jendela memiliki // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };2, dan di sini kita dapat menentukan jendela mana yang akan digunakan untuk popup. Jika sudah ada jendela dengan nama seperti itu – URL yang diberikan terbuka di dalamnya, jika tidak, jendela baru akan dibuka. paramsString konfigurasi untuk jendela baru. Ini berisi pengaturan, dibatasi oleh koma. Tidak boleh ada spasi di params, misalnya. // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };3Setelan untuk // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };_4
- Posisi
- // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };5 (numerik) – koordinat sudut kiri atas jendela di layar. Ada batasan. jendela baru tidak dapat diposisikan di luar layar
- // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };6 (numerik) – lebar dan tinggi jendela baru. Ada batasan lebar/tinggi minimal, jadi tidak mungkin membuat jendela tak terlihat
- Fitur jendela
- // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };7 (ya/tidak) – menampilkan atau menyembunyikan menu browser di jendela baru
- // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };8 (ya/tidak) – menampilkan atau menyembunyikan bilah navigasi browser (mundur, maju, muat ulang dll) di jendela baru
- // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };9 (ya/tidak) – menampilkan atau menyembunyikan bidang URL di jendela baru. FF dan IE tidak mengizinkan untuk menyembunyikannya secara default
- let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);0 (ya/tidak) – menampilkan atau menyembunyikan bilah status. Sekali lagi, sebagian besar browser memaksanya untuk ditampilkan
- let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);1 (ya/tidak) – memungkinkan untuk menonaktifkan pengubahan ukuran untuk jendela baru. Tidak direkomendasikan
- let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);_2 (ya/tidak) – memungkinkan untuk menonaktifkan bilah gulir untuk jendela baru. Tidak direkomendasikan
Ada juga sejumlah fitur khusus browser yang kurang didukung, yang biasanya tidak digunakan. Periksa jendela. buka di MDN untuk contoh
Mari kita buka jendela dengan serangkaian fitur minimal, hanya untuk melihat browser mana yang memungkinkan untuk dinonaktifkan
let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);
Di sini sebagian besar "fitur jendela" dinonaktifkan dan jendela diposisikan di luar layar. Jalankan dan lihat apa yang sebenarnya terjadi. Kebanyakan browser "memperbaiki" hal-hal aneh seperti nol // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };6 dan offscreen // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };5. Misalnya, Chrome membuka jendela seperti itu dengan lebar/tinggi penuh, sehingga menempati layar penuh
Mari tambahkan opsi pemosisian normal dan koordinat let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);5, let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);6, let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);7, let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);8
let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);
Sebagian besar browser menampilkan contoh di atas sesuai kebutuhan
Aturan untuk pengaturan yang dihilangkan
- Jika tidak ada argumen ke-3 dalam panggilan let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);9, atau kosong, maka parameter jendela default akan digunakan
- Jika ada string parameter, tetapi beberapa fitur let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);0 dihilangkan, maka fitur yang dihilangkan diasumsikan memiliki nilai let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);1. Jadi jika Anda menentukan params, pastikan Anda secara eksplisit menyetel semua fitur yang diperlukan ke ya
- Jika tidak ada // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };5 di params, maka browser mencoba membuka jendela baru di dekat jendela yang terakhir dibuka
- Jika tidak ada // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };6, maka jendela baru akan berukuran sama dengan yang terakhir dibuka
Panggilan let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);_9 mengembalikan referensi ke jendela baru. Itu dapat digunakan untuk memanipulasi propertinya, mengubah lokasi, dan bahkan lebih banyak lagi
Dalam contoh ini, kami menghasilkan konten popup dari JavaScript
let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");
Dan di sini kami memodifikasi konten setelah memuat
let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };
Tolong dicatat. segera setelah let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);_5, jendela baru belum dimuat. Itu ditunjukkan oleh let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);_6 sejalan let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);7. Jadi kami menunggu let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);8 untuk memodifikasinya. Kita juga bisa menggunakan penangan let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=600,height=300,left=100,top=100`; open('/', 'test', params);_9 untuk let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");0
Kebijakan asal yang sama
Windows dapat dengan bebas mengakses konten satu sama lain hanya jika mereka berasal dari asal yang sama (protokol yang sama. //domain. pelabuhan)
Jika tidak, e. g. jika jendela utama dari let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");1, dan munculan dari let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");2, itu tidak mungkin untuk alasan keamanan pengguna. Untuk detailnya, lihat bab Komunikasi lintas jendela
Munculan juga dapat mengakses jendela "pembuka" menggunakan referensi let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");3. Ini adalah let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");_4 untuk semua jendela kecuali munculan
Jika Anda menjalankan kode di bawah ini, itu menggantikan konten jendela pembuka (saat ini) dengan "Test"
let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write( "<script>window.opener.document.body.innerHTML = 'Test'<\/script>" );
Jadi koneksi antar jendela bersifat dua arah. jendela utama dan popup memiliki referensi satu sama lain
Untuk menutup jendela. let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");_5
Untuk memeriksa apakah jendela ditutup. let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");_6
Secara teknis, metode let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");7 tersedia untuk semua let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");8, tetapi let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");9 diabaikan oleh sebagian besar browser jika let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");8 tidak dibuat dengan let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };1. Jadi itu hanya akan bekerja pada popup
Properti let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };_2 adalah let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };3 jika jendela ditutup. Itu berguna untuk memeriksa apakah popup (atau jendela utama) masih terbuka atau tidak. Seorang pengguna dapat menutupnya kapan saja, dan kode kita harus mempertimbangkan kemungkinan itu
Kode ini memuat dan kemudian menutup jendela
let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };
Ada metode untuk memindahkan/mengubah ukuran jendela
let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };4Pindahkan jendela relatif ke posisi saat ini let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };5 piksel ke kanan dan let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };6 piksel ke bawah. Nilai negatif diperbolehkan (bergerak ke kiri/atas). let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };7Pindahkan jendela ke koordinat let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };8 di layar. let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };9Ubah ukuran jendela dengan diberikan // popup blocked window.open('//javascript.info'); // popup allowed button. title = () => { window.open('//javascript.info'); };6 relatif terhadap ukuran saat ini. Nilai negatif diperbolehkan. let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write( "<script>window.opener.document.body.innerHTML = 'Test'<\/script>" );1Ubah ukuran jendela ke ukuran yang diberikanAda juga acara let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write( "<script>window.opener.document.body.innerHTML = 'Test'<\/script>" );_2
Hanya munculan
Untuk mencegah penyalahgunaan, browser biasanya memblokir metode ini. Mereka hanya bekerja dengan andal pada munculan yang kami buka, yang tidak memiliki tab tambahan
Tidak ada minifikasi/maksimalisasi
JavaScript tidak memiliki cara untuk memperkecil atau memaksimalkan jendela. Fungsi tingkat OS ini disembunyikan dari pengembang Frontend
Metode pemindahan/pengubahan ukuran tidak berfungsi untuk jendela yang dimaksimalkan/diminimalkan
Kami sudah berbicara tentang menggulir jendela di bab Ukuran jendela dan menggulir
let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write( "<script>window.opener.document.body.innerHTML = 'Test'<\/script>" );3Gulir jendela let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };5 piksel ke kanan dan let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };6 ke bawah relatif gulir saat ini. Nilai negatif diperbolehkan. let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write( "<script>window.opener.document.body.innerHTML = 'Test'<\/script>" );6Gulir jendela ke koordinat yang diberikan let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };8. let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write( "<script>window.opener.document.body.innerHTML = 'Test'<\/script>" );8Gulir jendela untuk membuat let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write( "<script>window.opener.document.body.innerHTML = 'Test'<\/script>" );9 muncul di bagian atas (default) atau di bagian bawah untuk let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };0Ada juga acara let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };_1
Secara teoritis, ada let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };_2 dan let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };3 metode untuk fokus/tidak fokus pada jendela. Dan ada juga let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };4 acara yang memungkinkan untuk menangkap momen ketika pengunjung fokus pada jendela dan beralih ke tempat lain
Meskipun, dalam praktiknya mereka sangat terbatas, karena di masa lalu halaman-halaman jahat menyalahgunakannya
Misalnya, lihat kode ini
window.onblur = () => window.focus();
Saat pengguna mencoba untuk keluar dari jendela (let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };5), jendela akan kembali fokus. Tujuannya adalah untuk "mengunci" pengguna dalam let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");8
Jadi browser harus memperkenalkan banyak batasan untuk melarang kode seperti itu dan melindungi pengguna dari halaman iklan dan kejahatan. Mereka bergantung pada browser
Misalnya, browser seluler biasanya mengabaikan let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };2 sepenuhnya. Pemfokusan juga tidak berfungsi saat munculan terbuka di tab terpisah, bukan di jendela baru
Namun, ada beberapa kasus penggunaan saat panggilan semacam itu berfungsi dan dapat bermanfaat
Contohnya
- Saat kita membuka munculan, sebaiknya jalankan let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };8 di atasnya. Untuk berjaga-jaga, untuk beberapa kombinasi OS/browser memastikan bahwa pengguna berada di jendela baru sekarang
- Jika kami ingin melacak kapan pengunjung benar-benar menggunakan aplikasi web kami, kami dapat melacak let newWindow = open('/', 'example', 'width=300,height=300'); newWindow.onload = function() { newWindow.close(); alert(newWindow.closed); // true };9. Itu memungkinkan kami untuk menangguhkan/melanjutkan aktivitas dalam halaman, animasi, dll. Namun perlu diketahui bahwa peristiwa window.onblur = () => window.focus();_0 berarti pengunjung keluar dari jendela, tetapi mereka masih dapat mengamatinya. Jendela berada di latar belakang, tetapi masih dapat terlihat
Jendela sembulan jarang digunakan, karena ada alternatif. memuat dan menampilkan informasi dalam halaman, atau dalam iframe
Jika kita akan membuka munculan, praktik yang baik adalah memberi tahu pengguna tentang hal itu. Ikon "jendela pembuka" di dekat tautan atau tombol akan memungkinkan pengunjung bertahan dari pergeseran fokus dan mengingat kedua jendela
- Munculan dapat dibuka dengan panggilan ________79______1. Ini mengembalikan referensi ke jendela yang baru dibuka
- Browser memblokir let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`; open('/', 'test', params);_9 panggilan dari kode di luar tindakan pengguna. Biasanya akan muncul notifikasi, agar pengguna dapat mengizinkannya
- Browser membuka tab baru secara default, tetapi jika ukuran disediakan, maka itu akan menjadi jendela sembulan
- Munculan dapat mengakses jendela pembuka menggunakan properti let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");3
- Jendela utama dan popup dapat dengan bebas membaca dan memodifikasi satu sama lain jika memiliki asal yang sama. Jika tidak, mereka dapat mengubah lokasi satu sama lain dan bertukar pesan
Untuk menutup munculan. gunakan let newWin = window.open("about:blank", "hello", "width=200,height=200"); newWin.document.write("Hello, world!");_7 panggilan. Pengguna juga dapat menutupnya (sama seperti jendela lainnya). window.onblur = () => window.focus();5 adalah let newWindow = open('/', 'example', 'width=300,height=300') newWindow.focus(); alert(newWindow.location.href); // (*) about:blank, loading hasn't started yet newWindow.onload = function() { let html = `<div style="font-size:30px">Welcome!</div>`; newWindow.document.body.insertAdjacentHTML('afterbegin', html); };3 setelah itu