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

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

  1. YGol

    YGol Member

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

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

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Покажи пример страницы.
    <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">
    Код (Text):
    <?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

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

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

    Код (Text):
    <?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 Статус как статус :)

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

    YGol Member

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

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

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

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

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

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