1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Закрытие Окна, Диалог С Предложением Сохранить

Тема в разделе "Lotus - Xpages", создана пользователем YGol, 10 сен 2014.

  1. YGol

    YGol Member

    Репутация:
    0
    Регистрация:
    25 ноя 2013
    Сообщения:
    23
    Симпатии:
    0
    Задачка в следующем: перед закрытием окна (желательно если документ был изменен) спросить пользователя сохранить или нет и если ответ «Да» сформировать запрос и отправить серверу чтобы документ сохранился, если ответ «Нет», то просто закрыть окно. (аналогия толстого клиента на закрытие измененного документа)

    Нагуглил событие window.onbeforeunload, но оно срабатывает и если закрывается диалог, значит как то надо определять что закрывается
    Кто нибудь решил\решал подобную задачу?
    Вроде бы она достаточно стандартная должна быть
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)
    Lotus team

    Репутация:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    1.784
    Симпатии:
    42
    Покажи пример страницы.
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">У меня это работает</div></div><div class="sp-body"><div class="sp-content">
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xc="http://www.ibm.com/xsp/custom" xmlns:xe="http://www.ibm.com/xsp/coreex">
    
    <script>
    function closeIt()
    {
    return "Any string value here forces a dialog box to \n" + 
    "appear before closing the window.";
    }
    window.onbeforeunload = closeIt;
    </script>
    
    
    
    
    <a href="http://www.microsoft.com">Click here to navigate to 
    www.microsoft.com</a>
    
    </xp:view>
     
  3. YGol

    YGol Member

    Репутация:
    0
    Регистрация:
    25 ноя 2013
    Сообщения:
    23
    Симпатии:
    0
    Диалог если закрыть крестиком отработает событие onbeforeunload.

    И вот как отправить запрос серверу чтобы документ сохранился через клиентский js? и как поймать резульат диалога от события onbeforeunload?

    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    
    <xp:scriptBlock id="scriptBlock1">
    
    
    <xp:this.value><![CDATA[function BeforeClose()
    {
    return "Закрыть документ?";
    }
    window.onbeforeunload = BeforeClose;]]></xp:this.value>
    </xp:scriptBlock>
    <xp:br></xp:br>
    <xp:button id="button1" value="Вызов диалога">
    <xp:eventHandler event="onclick" submit="true"
    refreshMode="complete">
    <xp:this.action><![CDATA[#{java script:getComponent("dialog1").show()}]]></xp:this.action>
    </xp:eventHandler></xp:button>
    <xp:br></xp:br><xe:dialog id="dialog1">
    <xp:button id="button2" value="Закрыть">
    <xp:eventHandler event="onclick" submit="true"
    refreshMode="complete">
    <xp:this.action><![CDATA[#{java script:getComponent("dialog1").hide()}]]></xp:this.action>
    </xp:eventHandler></xp:button>
    
    </xe:dialog>
    </xp:view>
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)
    Lotus team

    Репутация:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    1.784
    Симпатии:
    42
    Ага.. ну эта проблема только в IE. Значит надо передумывать с диалогами. Ну как минимум не позволять закрывать диалог крестиком или кнопкой Esc
     
  5. YGol

    YGol Member

    Репутация:
    0
    Регистрация:
    25 ноя 2013
    Сообщения:
    23
    Симпатии:
    0
    У меня почему то и события диалога не работают, закладка Events диалога, SSJS, наставил print -ов а результата нет. (остальные что в all properties клиентские)
    как отловить нажатие закрытия?

    И вот как отправить запрос серверу чтобы документ сохранился через клиентский js? и как поймать резульат диалога от события onbeforeunload?
    вопросов много)))
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)
    Lotus team

    Репутация:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    1.784
    Симпатии:
    42
    Для клиентского JS есть такая штука как консоль. Не знаю как в IE8, но в IE9 она есть. Так же консоль есть в Chrome и вроде как в FireFox
    Код:
    console.log("тест")
    Остальное можно загуглить касательно консоли.

    Для вызова серверных событий с клиентской стороны пользуй компонент Remote Service в разделе Data Access библиотеки Ext Lib
    Можно вызывать агенты, процедуры.. передавать параметры...
     
Загрузка...
Похожие Темы - Закрытие Окна Диалог
  1. Баламут
    Ответов:
    2
    Просмотров:
    3.316
  2. k85
    Ответов:
    12
    Просмотров:
    1.289
  3. orion
    Ответов:
    8
    Просмотров:
    1.801
  4. azzza
    Ответов:
    3
    Просмотров:
    2.688
  5. hosm
    Ответов:
    2
    Просмотров:
    3.708

Поделиться этой страницей