Fermez toutes les fenêtres contextuelles avec Javascript

Est-ce que quelqu'un sait comment puis-je fermer toutes les fenêtres contextuelles (fenêtre popup par javascript) en version Javascript?

Exemple:

  1. Ouvrez 3 nouvelles fenêtres en cliquant sur un bouton et en utilisant window.open () pour ouvrir les 3 nouvelles fenêtres.
  2. Cliquez sur un bouton et fermez les 3 fenêtres popup togather.

var childWindowHandles = new Array(); function openNewWindow(url, params) { childWindowHandles[childWindowHandles.length] = window.open(url, '', params); } function closeChildWindows() { for (var loop=0; loop<childWindowHandles.length; loop++) { if (!childWindowHandles[loop].closed) { childWindowHandles[loop].close(); } } } 

Deuxième résultat sur Google. Ferme TOUTES les fenêtres après les avoir stockées dans un tableau.

Voici un mode OOP plus, si vous n'aimez pas les variables globales. (Je ne suis pas sûr à 100% qu'il fonctionne, il suffit de modifier le code ci-dessus.

 popups = new popups(); function popups() { this.childs = new array(); this.open = function(url, params) { this.child.push(window.open(url, '', params)); } this.closeAll() { for(var loop=0; loop<this.childs.length; loop++) { if (!this.childs[loop].closed) { this.childs[loop].close(); } } } } 

Gardez la trace des fenêtres qui sont ouvertes en stockant leurs poignées, puis utilisez la méthode close () sur les poignées de la fenêtre à partir du bouton de commande du bouton.

Personnellement, je trouve que les fenêtres contextuelles constituent une fonctionnalité vraiment ennuyeuse lorsqu'elles sont utilisées dans une interface Web. Si vous pouvez les éviter en utilisant des boîtes de dialogue DOM, faites-le. Le plugin de dialogue jQuery est très pratique pour cela.