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

Пробовал событие %OnClose, но он воспроизводит только cache код, не выводя алертов и конфёрмов.
Есть идеи?
...
Рейтинг: 0 / 0
Сообщение перед закрытием страницы ZEN
    #38085356
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Сообщение перед закрытием страницы ZEN
    #38085411
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

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

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


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

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

Посмотрите, пожалуйста, пример, что я кинул. Как сделать чтобы было не по кнопке?
...
Рейтинг: 0 / 0
Сообщение перед закрытием страницы ZEN
    #38085471
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Сообщение перед закрытием страницы ZEN
    #38085495
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Сообщение перед закрытием страницы ZEN
    #38085502
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

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

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

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

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


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