Jump to content

Шурик_

Newbie
  • Posts

    2
  • Joined

  • Last visited

Шурик_'s Achievements

Explorer

Explorer (1/14)

0

Reputation

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy