Собственно, задача в том, чтобы при закрытии родительского окна или выгрузке из него родительского документа закрывались порожденные им дочерние. Вроде задача простая - в родительском окне по событию unonload применяем метод close() к именам всех закрытых окон. Однако возникает проблема - а если дочернее окно не было открыто? Тогда при выгрузке документа мы применяем метод к имени, которое не существует. Возникает ошибка. Конечно, она не фатальна, но консоль ошибок вылезает, у кого она включена, и вообще, хочется все делать так, чтобы не было ошибок. Что же можно сделать? Как с объектами здесь поступить не получится - известно, что массива дочерних окон не существует, их нельзя как объекты, обнаружить и перебрать по очереди, их можно вытаскивать только по именам. Проверка на существование окна вызывает ту же ошибку - если мы пишем if(popupWin) - предполагается, что объект может возвращать истину или ложь, а его нет вообще такого. Можно, конечно, задать глобальную переменную имени открываемого окна. Например popupWIn. То есть имя такое по любому существует, открывали окно, или нет. Но тогда вылезает другая ошибка - пишет объект не имеет свойств. Собственно, я так понял, что создать объект дочернего окна полноценно можно только, открыв это окно. У меня только одна мысль, как избавиться от этих ошибок. Ввести глобальную переменную присвоить ей FALSE, а если скрипкт открывает окно, то присваивать ей TRUE. А в обработчике unonload проверять, и применять к окну метод close, только если переменная TRUE. Но способ уж больно топорный. Может есть поизящнее?