Как закрыть диалог, открытый showModalDialog?
Я попробовал это, но не получилось:
var win = showModalDialog('http://localhost/index.php');
win.close();
4 ответа
Определение модального окна состоит в том, что выполнение текущей функции останавливается, пока модальное окно не будет закрыто. То есть призыв к showModalDialog()
будет блокироваться, пока показанное диалоговое окно не будет закрыто. Поэтому ваш win.close()
будет вызван после того, как окно уже закрыто (не то, что вы собираетесь).
У вас есть пара вариантов:
Показать диалог как немодальный и подождать в цикле событий, пока не будет выполнено определенное условие. Затем закройте окно от вызывающей функции.
Модальное диалоговое окно закрывается в соответствующее время.
Когда вы выполняете showModalDialog
, вся последовательность кода заблокирована. Вам нужно закрыть модальное окно, чтобы продолжить, однако win
будет null
к тому времени:P
Если вы хотите закрыть его из модального диалога, вы можете использовать:
$ (". ui-dialog-titlebar-close", parent.document).trigger ("клик");
Модальный диалог означает, что следующий оператор не выполняется, пока диалог не будет закрыт. Вот почему ничто из того, что вы поместите в следующую строку, никогда не сработает.
Это цель модальных диалогов - заморозить текущее окно и получить некоторые обязательные данные от пользователя. Если вы хотите закрыть его немедленно, я подозреваю, что вам не нужен модальный диалог.
Кстати, возвращаемое значение showModalDialog - это код возврата диалога, а не переменная окна!
Обычно модальные диалоги закрыты изнутри. Если вы не хотите ждать ввода пользователя, в коде index.php должно быть что-то, что закрывает его.