2009-06-25 4 views
1

У меня есть страница, которая открывает модальный диалог. После выполнения операций в диалоговом окне я хочу обновить открытую страницу. Но когда я открываю всплывающее окно с помощью «openDialog», я не могу получить доступ к открывателю, используя window.opener на всплывающей странице. Когда я захочу получить доступ, он появляется «неопределенным». (Я не хочу использовать метод «popup» в этом случае.Я хочу, чтобы это был диалог. Использование «popup» - это мой второй план.)Как найти модальный диалог с javascript?

Какова наилучшая практика, чтобы избавиться от этой проблемы ?

ответ

0

Когда я использую Shadowbox, я могу получить к нему доступ.

self.parent.location.reload(); 

Возможно, это работает и для вас.

0

Если вы посмотрите на https://developer.mozilla.org/En/DOM/Window.openDialog, вы увидите, что вы можете сделать диалоговое окно модальным, передав модальный аргумент, таким образом, он не вернется, пока диалог не будет завершен, в то время вы можете перезагрузить родительскую страницу.

1

это было то, что мне нужно, что я получил от ссылки

В родителю:

parentVar = "set by parent"; 
vRv = window.showModalDialog("modalWindow.html",window.self, ""); 

В модальной:

dialogArguments.parentVar = "set by modal"; 

PS: Не забудьте установить ссылку на открыватель с «window.self»

0

модальное диалоговое окно является функцией блокировки. вызывающий абонент ждет, пока окно не будет закрыто, а затем возобновится. Следовательно, это просто вопрос обновления в сценарии происхождения ПОСЛЕ вызова для открытия диалога .

Например, предположим, что у вас есть страница с сеткой. У вас есть кнопка добавления, чтобы открыть модальный диалог, и вам нужно, чтобы сетка обновлялась (или обновляла страницу, проблема была такой же).

ВОТ псевдо-код, чтобы открыть модальное диалоговое окно, а затем обновить сетку

заменить grid.Refresh(); с любым действием, которое вы хотите выполнить, оно будет выполняться ПОСЛЕ того, как диалоговое окно закрывается.