Rumah >hujung hadapan web >tutorial js >Mengapakah `window.close()` dan `self.close()` Gagal Menutup Windows Chrome?
Window.close dan Self.close Gagal Menutup Windows Chrome: Analisis Komprehensif
Memanggil window.close() atau self.close () dalam kod JavaScript mungkin gagal menutup tetingkap dalam Chrome. Percanggahan ini berpunca daripada salah tanggapan umum bahawa Chrome melarang skrip daripada menutup tetingkap melainkan ia dibuat skrip. Walaupun ini palsu, kaedah ini mungkin masih gagal berfungsi seperti yang diharapkan. Artikel ini menyelidiki sebab asas dan meneroka penyelesaian yang berpotensi.
Sekatan Keselamatan
Pelayar moden telah melaksanakan langkah keselamatan untuk menghalang skrip berniat jahat daripada menutup tetingkap secara sembarangan. Mengikut spesifikasi window.close(), JavaScript biasanya tidak dibenarkan menutup tetingkap yang tidak dibuat oleh skrip yang sama. Sekatan ini bertujuan untuk mengekang eksploitasi keselamatan dan kesulitan pengguna.
Pelaksanaan Firefox
Firefox mematuhi garis panduan keselamatan ini dengan tegas, secara jelas melarang skrip daripada menutup tetingkap yang tidak dibuka oleh skrip. Jika skrip Greasemonkey/Tampermonkey cuba menggunakan window.close() dalam Firefox, ia akan mencetuskan mesej ralat: "Skrip mungkin tidak menutup tetingkap yang tidak dibuka oleh skrip."
Pelaksanaan Chrome
Chrome, sebaliknya, membenarkan skrip menutup tetingkap yang tidak dibuat skrip. Walau bagaimanapun, pengecualian ini tidak meliputi konteks skrip pengguna seperti Greasemonkey atau Tampermonkey. Percubaan untuk menggunakan window.close() daripada konteks ini akan mengakibatkan kegagalan senyap.
Penyelesaian
Sementara sambungan Chrome dan alat tambah Firefox menyediakan penyelesaian yang boleh dipercayai untuk penutupan windows, terdapat penyelesaian yang meretas untuk pengguna skrip:
Chrome:
Firefox:
Penyelesaian Jangka Panjang
Pendekatan yang paling boleh dipercayai ialah membuat sambungan Chrome khusus atau alat tambah Firefox yang boleh memanggil window.close() dengan berkesan. Sebagai alternatif, pembangun skrip pengguna boleh mempertimbangkan untuk menyerahkan permintaan ciri kepada Greasemonkey atau Tampermonkey untuk kefungsian penutupan tetingkap terbina dalam.
Atas ialah kandungan terperinci Mengapakah `window.close()` dan `self.close()` Gagal Menutup Windows Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!