Apa itu jendela terbuka javascript?

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 ("http://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 ("http://jsc.simfatic-solutions.com","mywindow","status=1");
_

Kode di bawah membuka jendela dengan bilah alat dan bilah status

window.open ("http://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 ("http://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 ("http://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("http://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

  1. Munculan adalah jendela terpisah yang memiliki lingkungan JavaScript independennya sendiri. Jadi membuka sembulan dari situs pihak ketiga yang tidak tepercaya itu aman
  2. Sangat mudah untuk membuka popup
  3. 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('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://javascript.info');
};
0

Misalnya

// popup blocked
window.open('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://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('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://javascript.info');
};
1

urlSebuah URL untuk memuat ke jendela baru. nameNama jendela baru. Setiap jendela memiliki
// popup blocked
window.open('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://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('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://javascript.info');
};
3

Setelan untuk

// popup blocked
window.open('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://javascript.info');
};
_4

  • Posisi
    • // popup blocked
      window.open('https://javascript.info');
      
      // popup allowed
      button.onclick = () => {
        window.open('https://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('https://javascript.info');
      
      // popup allowed
      button.onclick = () => {
        window.open('https://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('https://javascript.info');
      
      // popup allowed
      button.onclick = () => {
        window.open('https://javascript.info');
      };
      7 (ya/tidak) – menampilkan atau menyembunyikan menu browser di jendela baru
    • // popup blocked
      window.open('https://javascript.info');
      
      // popup allowed
      button.onclick = () => {
        window.open('https://javascript.info');
      };
      8 (ya/tidak) – menampilkan atau menyembunyikan bilah navigasi browser (mundur, maju, muat ulang dll) di jendela baru
    • // popup blocked
      window.open('https://javascript.info');
      
      // popup allowed
      button.onclick = () => {
        window.open('https://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('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://javascript.info');
};
6 dan offscreen
// popup blocked
window.open('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://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('https://javascript.info');
    
    // popup allowed
    button.onclick = () => {
      window.open('https://javascript.info');
    };
    5 di params, maka browser mencoba membuka jendela baru di dekat jendela yang terakhir dibuka
  • Jika tidak ada
    // popup blocked
    window.open('https://javascript.info');
    
    // popup allowed
    button.onclick = () => {
      window.open('https://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('https://javascript.info');

// popup allowed
button.onclick = () => {
  window.open('https://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 diberikan

Ada 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
};
0

Ada 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

Mengapa kita menggunakan jendela terbuka JavaScript?

Ini adalah metode jendela JavaScript yang ditentukan sebelumnya yang digunakan untuk membuka tab atau jendela baru di browser . Ini akan tergantung pada pengaturan atau parameter browser Anda yang diteruskan di jendela. open() yang akan membuka jendela atau tab baru.

Apa gunanya membuka jendela?

Metode open() membuka jendela browser baru, atau tab baru , tergantung pada pengaturan browser Anda dan nilai parameter.

Bagaimana cara membuka jendela baru di JavaScript?

Anda dapat menggunakan JavaScript untuk meluncurkan jendela baru. Jendela. open() , yang memungkinkan Anda untuk membuka jendela browser baru tanpa keluar dari halaman saat ini

Apa perbedaan antara buka jendela dan lokasi jendela?

open() adalah fungsi pada objek window itu sendiri sedangkan window. lokasi adalah objek yang memperlihatkan berbagai metode dan properti lainnya .