Artikel ini memperkenalkan cara menggunakan kaedah window.open untuk membuka sub-tetingkap Apabila kita menutup tetingkap utama, semua sub-tingkap juga akan ditutup. Di bawah ialah idea dan kod pelaksanaan saya untuk dikongsi dengan anda.
Idea pelaksanaan:
1. Parameter kedua winName bagi tetingkap fungsi tetingkap anak terbuka.open(url,winName) boleh mengenal pasti tetingkap terbuka secara unik. Oleh itu, anda hanya perlu menggunakan fungsi winName.close() untuk menutup tetingkap anak.
2. Halaman mungkin mempunyai berbilang sub-tingkap. Oleh itu, tatasusunan diperlukan untuk menyimpan semua objek tetingkap kanak-kanak. Apabila ditutup, hanya lelaran melalui tatasusunan.
3. Sub-tetingkap juga boleh membuka sub-tetingkap. Gelung berterusan selama-lamanya. Oleh itu keperluan untuk penghakiman.
Keperluan ini boleh dicapai dalam dua cara.
Panggil fungsi penutupan tetingkap kanak-kanak.
Kaedah ini mudah difahami, tetapi semasa proses pelaksanaan sebenar, didapati acara penutupan pelayar tidak berlaku. Dan ia perlu ditutup dengan mengklik butang atau menggunakan kekunci pintasan Lebih menyusahkan untuk menutup sub-tingkap secara rekursif
Kaedah ini mudah untuk dilaksanakan. Kelemahannya ialah semua tatasusunan objek tetingkap yang menyimpan sub-tingkap perlu mempunyai nama yang sama
Berikut ialah kaedah sub-tingkap yang menggunakan rekursi untuk menutup sub-tingkap dan sub-tingkap
function closeSonWindow(win){ for(var index=0;index<win.length;index++){ //如果窗口已关闭 if(win[index].closed){ continue; } //如果窗口没有可以打开的子窗口 if(typeof(win[index].openedWindow)=="undefined"){ win[index].close(); continue; } if(win[index].openedWindow.length==0){ win[index].close(); }else{ closeSonWindow(win[index].openedWindow); win[index].close(); } } }
Di atas adalah huraian keseluruhan artikel ini, saya harap ia akan membantu semua orang.