2015-07-23 4 views
0

i Поиск в stackoverflow, найденная версия Dojo, чтобы предотвратить Esc, чтобы закрыть вкладку xPage в клиенте.Запрет нажимать кнопку «X» на странице xpages

<xp:eventHandler 
     event="onClientLoad" 
     submit="false"> 
     <xp:this.script><![CDATA[dojo.addOnLoad(function(){ 
dojo.connect(document, 'keydown', function(e){ 
     if(e.keyCode === 27){ dojo.stopEvent(e); }   
}); 
});]]></xp:this.script> 
    </xp:eventHandler> 

Но если я хочу, чтобы пользователь не нажал кнопку «X» = «закрыть» над формой, чтобы закрыть окно. В любом случае, чтобы размыть кнопку «X»? или сделать окно не может закрыть, нажав на него?

+0

Вам действительно нужно быть более конкретным: о каком клиенте вы говорите: Браузер? Заметки? Mobile? - Какое отношение «Х» относится к клиенту: закрывается ли вкладка браузера или клиента? Или все окно? Или это может быть модальный диалог, подобный dojoDialog? –

+0

google chrome browser, если возможно, клиент также. (Причина, позволяющая пользователю выбирать, как запустить онлайн/в офисе). Открытая вкладка представляет собой форму xpages. не используя «диалог библиотеки расширений», чтобы вызвать его. –

ответ

0

Если вы имеете в виду «x» на вкладке «Клиент Notes», вы не сможете сделать это в коде приложения XPages.

Он открывается как вид Eclipse (такой же, как в приложении «Навигатор приложений», «Палитра элементов управления», «Проблемы и т. Д.» В «Дизайнере»). Вам нужно будет взглянуть на API Eclipse и посмотреть, можно ли запустить View без «x», чтобы закрыть его. Но тогда вам нужно будет запустить форму из XPage с помощью вызова Eclipse с помощью XSP.executeCommand() и плагина (минимум R9). См. Освоение XPages 2nd Edition для единственного примера, который я знаю для XSP.executeCommand().

1

И если вы хотите предотвратить закрытие вкладки браузера, я думаю, что это действительно невозможно. Возможно, это можно сделать, но тогда есть много подводных камней.

Вы можете использовать событие onunload, которое срабатывает при каждом выгрузке объекта. Вы также можете использовать событие onbeforeunload, которое должно быть запущено, когда элемент загружен (но я нашел его ненадежным).

Трудная часть: почему происходит разгрузка? Это из-за x, или потому что у вас есть программное действие, которое перезагружает (часть) экрана? В обоих случаях запускается разгрузка.

+0

Да, у меня есть некоторые программные действия, используемые на странице, поэтому я должен запретить пользователю нажимать кнопку «x» (закрыть). Пользователь может нажать кнопку «отправить» или «отменить» на экране. так что можно обновить действие. Я попытаюсь узнать, как работает функция onunload, так как это соответствует моему делу или нет. Благодаря! –

0

Как уже писали другие: я не думаю, что вы действительно можете это решить. Потому что: этого будет недостаточно, чтобы запретить пользователям закрывать вкладку, они также могут закрывать все окно браузера (возможно, включая окно Notes Client). А что, если браузер/клиент падает на них? Невозможно поймать это «событие» на самом деле.
Думаю, вам нужно будет все подумать.

+0

ОК спасибо. Я думаю, действительно нужно подумать о другом. –

Смежные вопросы