Собственно, задача в том, чтобы при закрытии родительского окна или выгрузке из него родительского документа закрывались порожденные им дочерние. Вроде задача простая - в родительском окне по событию unonload применяем метод close() к именам всех закрытых окон.
Однако возникает проблема - а если дочернее окно не было открыто? Тогда при выгрузке документа мы применяем метод к имени, которое не существует. Возникает ошибка. Конечно, она не фатальна, но консоль ошибок вылезает, у кого она включена, и вообще, хочется все делать так, чтобы не было ошибок.
Что же можно сделать? Как с объектами здесь поступить не получится - известно, что массива дочерних окон не существует, их нельзя как объекты, обнаружить и перебрать по очереди, их можно вытаскивать только по именам.
Проверка на существование окна вызывает ту же ошибку - если мы пишем if(popupWin) - предполагается, что объект может возвращать истину или ложь, а его нет вообще такого.
Можно, конечно, задать глобальную переменную имени открываемого окна. Например popupWIn. То есть имя такое по любому существует, открывали окно, или нет.
Но тогда вылезает другая ошибка - пишет объект не имеет свойств. Собственно, я так понял, что создать объект дочернего окна полноценно можно только, открыв это окно.
У меня только одна мысль, как избавиться от этих ошибок. Ввести глобальную переменную присвоить ей FALSE, а если скрипкт открывает окно, то присваивать ей TRUE. А в обработчике unonload проверять, и применять к окну метод close, только если переменная TRUE. Но способ уж больно топорный. Может есть поизящнее?
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
Шурик_
Собственно, задача в том, чтобы при закрытии родительского окна или выгрузке из него родительского документа закрывались порожденные им дочерние. Вроде задача простая - в родительском окне по событию unonload применяем метод close() к именам всех закрытых окон.
Однако возникает проблема - а если дочернее окно не было открыто? Тогда при выгрузке документа мы применяем метод к имени, которое не существует. Возникает ошибка. Конечно, она не фатальна, но консоль ошибок вылезает, у кого она включена, и вообще, хочется все делать так, чтобы не было ошибок.
Что же можно сделать? Как с объектами здесь поступить не получится - известно, что массива дочерних окон не существует, их нельзя как объекты, обнаружить и перебрать по очереди, их можно вытаскивать только по именам.
Проверка на существование окна вызывает ту же ошибку - если мы пишем if(popupWin) - предполагается, что объект может возвращать истину или ложь, а его нет вообще такого.
Можно, конечно, задать глобальную переменную имени открываемого окна. Например popupWIn. То есть имя такое по любому существует, открывали окно, или нет.
Но тогда вылезает другая ошибка - пишет объект не имеет свойств. Собственно, я так понял, что создать объект дочернего окна полноценно можно только, открыв это окно.
У меня только одна мысль, как избавиться от этих ошибок. Ввести глобальную переменную присвоить ей FALSE, а если скрипкт открывает окно, то присваивать ей TRUE. А в обработчике unonload проверять, и применять к окну метод close, только если переменная TRUE. Но способ уж больно топорный. Может есть поизящнее?
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.