ДрузьяЗакрытия дочерних окон
В нашем приложении мы имеем родительское окно A, а затем есть окно B, который нерестится из окна А, а затем окно C нерестится из окна B, а затем несколько других окон нерестится из окна C Когда я выхожу из окна A, закрывается только окно B, оно НЕ закрывает окно C и его дочерние элементы.
Используемый в настоящее время сценарий представлен ниже.
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();
}
}
}
Пожалуйста, запустите свой код через jsbeautifier.org - ваш отступ ужасный. – ThiefMaster