Rumah >hujung hadapan web >tutorial js >window.openCara menutup tetingkap yang terbuka

window.openCara menutup tetingkap yang terbuka

DDD
DDDasal
2023-12-06 14:15:301875semak imbas

Kaedah untuk menutup tetingkap yang terbuka: 1. Gunakan "window.close" untuk menutup tetingkap baharu; 2. Gunakan "window.location" untuk mengubah hala; 3. Gunakan "window.blur" dan "window.focus"; . Gunakan "window.history" fallback; 5. Gunakan "window.opener".

window.open ialah fungsi dalam JavaScript yang membuka tetingkap atau tab baharu. Walau bagaimanapun, disebabkan oleh sekatan keselamatan penyemak imbas, anda tidak boleh terus kembali ke tetingkap atau tab asal daripada tetingkap atau tab baharu, dan anda juga tidak boleh menutup terus tetingkap atau tab baharu. Ini adalah untuk mengelakkan skrip berniat jahat daripada menutup tetingkap atau tab tanpa pengetahuan pengguna.

Walau bagaimanapun, terdapat cara anda boleh menutup tetingkap atau tab baharu secara tidak langsung. Berikut adalah beberapa kaedah yang mungkin:

1 Gunakan window.close untuk menutup tetingkap baharu

Walaupun anda tidak boleh menutup terus tetingkap baharu yang dibuka melalui window.open, anda boleh memanggil fungsi window.close dalam tetingkap baharu. tutup je. Sebagai contoh:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.close();

Sila ambil perhatian bahawa hanya tingkap yang dibuka dengan tingkap.terbuka boleh ditutup. Penyemak imbas biasanya tidak membenarkan skrip menutup tetingkap yang tidak dibuka oleh skrip. Selain itu, penyemak imbas boleh menghalang skrip daripada menutup tetingkap yang mengandungi window.close melainkan skrip dijalankan dalam persekitaran kotak pasir tetingkap atau tetingkap dibuka melalui window.open .

2. Gunakan ubah hala tetingkap.lokasi

Anda boleh mengubah hala ke halaman baharu dengan memasukkan URL baharu dalam bar alamat tetingkap baharu, dengan itu menutup tetingkap baharu secara tidak langsung. Contohnya:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.location = 'https://www.example2.com';

Dalam contoh ini, tetingkap baharu akan diubah hala ke URL baharu, dengan itu secara tidak langsung menutup tetingkap asal. Ambil perhatian bahawa pendekatan ini mungkin mencipta pengalaman buruk kepada pengguna kerana ia mengubah fokus penyemak imbas.

3 Menggunakan window.blur dan window.focus

Anda boleh cuba membuat tetingkap baharu hilang fokus dan kemudian mendapatkan semula fokus, yang mungkin menutupnya. Contohnya:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.blur();  // 失去焦点  
setTimeout(function() {  
    window.focus();  // 重新获得焦点  
}, 0);

Pendekatan ini mungkin tidak selalu berfungsi kerana pelaksanaan penyemak imbas mungkin berbeza-beza. Selain itu, pendekatan ini mungkin mencipta pengalaman buruk kepada pengguna kerana ia mengubah fokus penyemak imbas.

4. Gunakan window.history untuk kembali

Anda boleh cuba menggunakan kaedah back() objek window.history untuk kembali ke entri sejarah sebelumnya. Ini mungkin menutup tetingkap atau tab baharu. Contohnya:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.history.back();

Sila ambil perhatian bahawa kaedah ini mungkin mencipta pengalaman buruk kepada pengguna kerana ia mengubah sejarah penyemak imbas. Selain itu, pendekatan ini mungkin tidak selalu berfungsi, kerana pelaksanaan penyemak imbas mungkin berbeza-beza.

5. Gunakan window.opener

Jika anda membukanya dalam tetingkap baharu, anda boleh menggunakan sifat window.opener untuk mengakses tetingkap asal. Anda kemudiannya boleh menutup tetingkap baharu dengan memanggil window.close() pada tetingkap asal. Contohnya:

Dalam tetingkap asal:

var newWindow = window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
newWindow.close();  // 关闭新窗口

Sila ambil perhatian bahawa pendekatan ini mungkin mencipta pengalaman buruk kepada pengguna kerana ia memerlukan pengguna menutup tetingkap baharu secara manual. Selain itu, kaedah ini mungkin tidak selalu berfungsi kerana sekatan keselamatan penyemak imbas.

Atas ialah kandungan terperinci window.openCara menutup tetingkap yang terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn