mudrick
@mudrick
Máximo progreso hemos alcanzado en minimo seso.

Каким образом был закрыт попап?

Есть самый обычный попап, который открыли на странице через window.open() на своем же домене. В попапе пользователь может сделать некие действия, после которых попап закрывается средствами JS через window.close(). Но пользователь так же может попросту закрыть попап просто нажав на крестик в окне. Как определить, каким именно способом закрылся попап?
  • Вопрос задан
  • 268 просмотров
Решения вопроса 2
@GreatRash
Родительское окно из которого был вызван метод .open() доступно при помощи свойства .opener. Соответственно вы можете перед вызовом метода .close() передать в родительское окно флаг, что окно закрылось программно. А затем проверять: если флага не оказалось, значит юзер сам кликнул на крестик.
Ответ написан
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Например, при действии, в результате которого вызывается window.close(), установить значение глобальной переменной (передать значение в opener). А в событии unload этого окна смотреть — есть ли это значение глобальной переменной (или взять из opener).

Следует помнить, что обновление документа в окне также вызывает событие, поэтому отслеживать это событие лучше именно из opener. Это позволит проверять наличие окна и, если оно закрыто (свойство closed), проверять переданный параметр.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы