Cet article explique comment utiliser la méthode window.open pour ouvrir une sous-fenêtre. Lorsque nous fermons la fenêtre principale, toutes les sous-fenêtres seront également fermées. Vous trouverez ci-dessous mes idées d'implémentation et mon code à partager avec vous.
Idées de mise en œuvre :
1. Le deuxième paramètre winName de la fonction de fenêtre enfant ouverte window.open(url,winName) peut identifier de manière unique la fenêtre ouverte. Par conséquent, il vous suffit d’utiliser la fonction winName.close() pour fermer la fenêtre enfant.
2. Une page peut avoir plusieurs sous-fenêtres. Par conséquent, un tableau est nécessaire pour stocker tous les objets de fenêtre enfants. Une fois fermé, parcourez simplement le tableau.
3. Les sous-fenêtres peuvent également ouvrir des sous-fenêtres. La boucle continue indéfiniment. D’où la nécessité de faire preuve de jugement.
Cette exigence peut être satisfaite de deux manières.
Appelle la fonction de fermeture de la fenêtre enfant.
Cette méthode est facile à comprendre, mais au cours du processus de mise en œuvre proprement dit, il a été constaté que l'événement de fermeture du navigateur ne s'était pas produit. Et il faut la fermer en cliquant sur un bouton ou en utilisant une touche de raccourci. Il est un peu plus gênant de fermer la sous-fenêtre de manière récursive
.
Cette méthode est simple à mettre en œuvre. L'inconvénient est que tous les tableaux d'objets fenêtre qui stockent des sous-fenêtres doivent avoir le même nom
Ce qui suit est une méthode de sous-fenêtre qui utilise la récursivité pour fermer les sous-fenêtres et les sous-fenêtres
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(); } } }
Ce qui précède est la description complète de cet article, j'espère qu'il sera utile à tout le monde.