• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Модальные Диалоги В Xpage

  • Автор темы lionk
  • Дата начала
L

lionk

создаю диалоговое окно:
Код:
var dialog = dijit.byId("dialogId");
if (dialog) { dialog.destroyRecursive(); }
var url='piclist.xsp'+'?picViewName=SelDocType';
var dialog = new dijit.Dialog({
title:"Field Profile", 
id: "dialogId",
href:url,
refreshOnShow: true,
preventCache: true
});
dialog.show();


в него подгружается страница с списком(представлением), и кнопочками. Но нажимая на них ничего не происходит. CSJS не выполняется. Даже переход по страницам представления не работает. Хотя если открыть страницу на прямую то всё работает. В чём может быть причина?
Если у кого то есть гайд под рукой как настраивать диалоги(с загрузкой содержимого) поделитесь. Очень надо.
 
L

lionk

Посмотрите в смежной ветке: link removed
в заголовке же указал что "в соотведствующем разделе глуховато"

Это же велосипедная функция, с ней все должны были стыкаться.
Неужели все диалоги создают при загрузке страницы а потом только делают их visible?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Проблема похоже в регистрации событий кнопок... ну или что-то наковырять надо.
Тоже попробовал повторить. В piclist.xsp разместил кнопку с кодом
Код:
alert('TEST')
Не работает.

Заменил кнопку на такую конструкцию
Код:
<a href="#" onclick="alert('TEST')">Link</a>
Все нормально, но этого мало... без всех событий диалог не построить...
 
L

lionk

вот тут описана проблема
Есть пример как ввести диалог в ДОМ-дерево главной FORM тогда с предсозданным диалогом всё работает.
Но вопрос остаётся открытым для подгружаемых страниц. Может кто то знает как добавить функции с подгружаемой страницы в контекст текущей XPage?
 

aameno2

Lotus Team
27.01.2009
730
134
BIT
109
Я собираю страницу из custom`ов, даже не задумывался....в чем не удобство?
Из последнего только rich edit в диалоге криво работает, но думаю до обновления..
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Лично мена раздражает большое количество компонент на форме. Черт ногу сломит
Ну и собственно большое количество кастом-контролов тоже не всегда удобно.
Если работать с датасоурсом - проблем особых нет, но если работать через getComponent/getElement могут быть проблемы, т.к. на основной странице и кастом-контролах могут существовать компоненты с одинаковым названием
 
L

lionk

Алсо у extlib есть атрибут href который должен открывать сетевой ресурс, но он не работает.
Сделал всё через диалоги библиотки расширений. Не красиво но хоть работает.
 
X

xvasiliy

вот тут описана проблема
Есть пример как ввести диалог в ДОМ-дерево главной FORM тогда с предсозданным диалогом всё работает.
Но вопрос остаётся открытым для подгружаемых страниц. Может кто то знает как добавить функции с подгружаемой страницы в контекст текущей XPage?

Если я не ошибаюсь, то здесь есть тот самый код, который виджет в dom-дереве перемещает в "нужное" место. И вроде должно заработать.

var dialogWidget = dijit.byId(id);
if( dialogWidget ) dialogWidget.destroy();
dialogWidget = new dijit.Dialog( { }, dojo.byId(id));
var dialog = dojo.byId(id);
dialog.parentNode.removeChild(dialog);
var form = document.forms[0]; form.appendChild(dialog);
dialogWidget.startup();

Еще я пробовал через iframe (показывал модальное окно, xpages которого находится в другой базе), вроде работает.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Кстати... сделал я динамически подгружаемые диалоги.
Клиентский-JS работает в рамках диалога. Контекста основной страницы нет.
Серверный JS работает в полном объеме

Диалог формируется в кастом контроле и динамически грузится в панель.
В качестве диалога использую диалоги ExtLib
Датасоурс передается в диалог через параметы
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!