• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Модальные Диалоги В 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 не выполняется. Даже переход по страницам представления не работает. Хотя если открыть страницу на прямую то всё работает. В чём может быть причина?
Если у кого то есть гайд под рукой как настраивать диалоги(с загрузкой содержимого) поделитесь. Очень надо.
 
Посмотрите в смежной ветке: link removed
 
Посмотрите в смежной ветке: link removed
в заголовке же указал что "в соотведствующем разделе глуховато"

Это же велосипедная функция, с ней все должны были стыкаться.
Неужели все диалоги создают при загрузке страницы а потом только делают их visible?
 
Проблема похоже в регистрации событий кнопок... ну или что-то наковырять надо.
Тоже попробовал повторить. В piclist.xsp разместил кнопку с кодом
Код:
alert('TEST')
Не работает.

Заменил кнопку на такую конструкцию
Код:
<a href="#" onclick="alert('TEST')">Link</a>
Все нормально, но этого мало... без всех событий диалог не построить...
 
вот тут описана проблема
Есть пример как ввести диалог в ДОМ-дерево главной FORM тогда с предсозданным диалогом всё работает.
Но вопрос остаётся открытым для подгружаемых страниц. Может кто то знает как добавить функции с подгружаемой страницы в контекст текущей XPage?
 
Я собираю страницу из custom`ов, даже не задумывался....в чем не удобство?
Из последнего только rich edit в диалоге криво работает, но думаю до обновления..
 
Лично мена раздражает большое количество компонент на форме. Черт ногу сломит
Ну и собственно большое количество кастом-контролов тоже не всегда удобно.
Если работать с датасоурсом - проблем особых нет, но если работать через getComponent/getElement могут быть проблемы, т.к. на основной странице и кастом-контролах могут существовать компоненты с одинаковым названием
 
Алсо у extlib есть атрибут href который должен открывать сетевой ресурс, но он не работает.
Сделал всё через диалоги библиотки расширений. Не красиво но хоть работает.
 
вот тут описана проблема
Есть пример как ввести диалог в ДОМ-дерево главной 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 которого находится в другой базе), вроде работает.
 
Кстати... сделал я динамически подгружаемые диалоги.
Клиентский-JS работает в рамках диалога. Контекста основной страницы нет.
Серверный JS работает в полном объеме

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab