Amisfermeture des fenêtres enfant
Dans notre application, nous avons une fenêtre parente A, puis il y a la fenêtre B qui fraye par la fenêtre A, puis la fenêtre C fraie par la fenêtre B, puis plusieurs autres fenêtres fraye sur de la fenêtre C Lorsque je me déconnecte de la fenêtre A, seule la fenêtre B se ferme, elle ne ferme PAS la fenêtre C et ses enfants
Le script actuellement utilisé est le suivant.
function Close(frm) {
var win;
if(window.opener)
{
win = window
}else if(window.parent.WinObjectArray)
{
win = window
}
else
{
win = window.parent;
}
if(!win.parent.WinObjectArray)
win = win.parent;
if(frm=='logout')
{
if(window.WinObjectArray !=null && window.WinObjectArray!=undefined)
{
for(i=win.parent.WinObjectArray.length-1;i>=0;i--)
{
if(!win.parent.WinObjectArray[i].closed)
win.parent.WinObjectArray[i].close();
}
return ;
}
}
var closeWinArray = new Array();
closeWinArray[0] = window;
if(window.WinObjectArray !=null && window.WinObjectArray!=undefined)
{
for(i=0;i<win.parent.WinObjectArray.length;i++)
{
var openerFnd = false;
for(j=0;j<closeWinArray.length;j++)
{
if(!win.parent.WinObjectArray[i].closed && win.parent.WinObjectArray[i].opener == closeWinArray[j])
{
closeWinArray[closeWinArray.length] = win.parent.WinObjectArray[i];
openerFnd = true;
}
else if(win.parent.WinObjectArray[i].closed)
{
openerFnd = true;
}
}
if(openerFnd){
win.parent.WinObjectArray.splice(i,1);
i=i-1;
}
}
}
if(window.WinObjectArray !=null && window.WinObjectArray!=undefined)
{
for(i=0;i<win.parent.WinObjectArray.length;i++)
{
if(win.parent.WinObjectArray[i] == window)
{
win.parent.WinObjectArray.splice(i,1);
break;
}
}
closeWinArray.splice(0,1);
for(i=closeWinArray.length-1;i>=0;i--)
{
if(!closeWinArray[i].closed)
closeWinArray[i].close();
}
}
for (i=0;i<WindowArray.length;i++){
if (! WindowArray[i].closed) {
WindowArray[i].close();
}
}
}
Veuillez exécuter votre code via jsbeautifier.org - votre indentation est horrible .. – ThiefMaster