Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сообщение перед закрытием страницы ZEN / 12 сообщений из 12, страница 1 из 1
19.12.2012, 15:08
    #38085238
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
Друзья, такой срочный вопрос:
Надо вывести сообщение аналогичное тем, которые вылетают в обычных .ехе приложениях при закрытии не сохраненных файлов. Ну по типу "Хотите сохранить данный документ?" или "Вы уверены что хотите выйти?"
Ну и разумеется, чтобы был возможен выбор "да, нет, отмена"

Пробовал событие %OnClose, но он воспроизводит только cache код, не выводя алертов и конфёрмов.
Есть идеи?
...
Рейтинг: 0 / 0
19.12.2012, 16:12
    #38085356
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
Class del.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
<button caption="Exit" onclick="zenPage.exit();"/>
</page>
}

ClientMethod exit() [ Language = javascript ]
{
  
  if (confirm('Вы действительно хотите выйти из приложения?')) {
    zenAlert('yes');
  }else{
    zenAlert('no');
  }
}

}PS: в Вашем случае есть отличие "Нет" от "Отмена"?
...
Рейтинг: 0 / 0
19.12.2012, 16:36
    #38085411
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
servit,

Вы немного не поняли. Создавать кнопки я, слава богу, умею=)

Мне нужно, чтобы по нажатию крестика или любого другого способа закрытия страницы вылетало это сообщение.
Нашел нечто подобное, использующее следующее
Код: html
1.
2.
3.
4.
5.
6.
7.
function setHandler()
		{
			window.onbeforeunload = function()
			{
				return "Данные не сохранены. Точно перейти?";
			};
		}


однако вызвать сам setHandler() получилось пока только с кнопки, описанной в том же методе(%OnPage например)
...
Рейтинг: 0 / 0
19.12.2012, 16:44
    #38085433
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
HTML событие onunload
...
Рейтинг: 0 / 0
19.12.2012, 16:59
    #38085467
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
DAiMor,

onbeforeunload если уж на то пошло, но нет, я уже переопределил это событие. Мне нужно только "запустить" это переопределение автоматически. Пока оно запускается только с кнопки <button onclick="setHandler()">Поставить window.onbeforeunload</button>

Посмотрите, пожалуйста, пример, что я кинул. Как сделать чтобы было не по кнопке?
...
Рейтинг: 0 / 0
19.12.2012, 17:00
    #38085471
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
...
Рейтинг: 0 / 0
19.12.2012, 17:10
    #38085495
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
feanorcheg ,

onunloadHandler , который основан на onbeforeunload.
Пример onunloadHandlerClass del.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
</page>
}

ClientMethod onunloadHandler() [ Language = javascript ]
{
  return "Данные не сохранены. Точно перейти?";
}

}
...
Рейтинг: 0 / 0
19.12.2012, 17:15
    #38085502
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
servit,

вооо, спасибо большое! Всё проще, чем казалось
...
Рейтинг: 0 / 0
19.12.2012, 17:27
    #38085521
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
а возможен вариант с несколькими вариантами ответа?
...
Рейтинг: 0 / 0
19.12.2012, 17:52
    #38085576
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
feanorchegа возможен вариант с несколькими вариантами ответа?Согласно документации через return - нет.
Но Вы можете в самом теле обработчика это реализовать.
...
Рейтинг: 0 / 0
25.10.2013, 08:05
    #38440679
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
Коллеги, добрый день! Есть ли возможность в событии onunloadHandler отменить его из самого себя?

Есть диалоговое окно, по нажатию на крестик запускается некая проверка. Если проверка не успешна, то нужно сделать так чтобы диалоговое окно не закрывалось. Или мне нужно не onunloadHandler, а какое-то другое событие?
...
Рейтинг: 0 / 0
25.10.2013, 08:40
    #38440694
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение перед закрытием страницы ZEN
вопрос снимаю, решила.
кому интересно:

в диалоге который закрываем пишем

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ClientMethod onunloadHandler() [ Language = javascript ]
{
....
(тут проверяю удачная или не удачная проверка)
.....
(если проверка неудачная, то вызываю) 
zenPage.firePopupAction('showAgain','');
....

}



а на главной странице откуда загружался диалог делаю как бы повторный вызов того же самого диалога

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ClientMethod onPopupAction(popupName, action, value) [ Language = javascript ]
{
	switch(popupName) {
		case 'Имя_диалога':
			switch(action) {
				case 'showAgain':
					window.setTimeout("zenPage.МетодКоторыйОткрываетДиалогЗаново();",50);
				break;
			}
		break;
	}
}



тайм аут - чтоыб предыдущий диалог успел закрыться. немного коряво, но мою задачу решает)))
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сообщение перед закрытием страницы ZEN / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]