Как мне закрыть окно в Xpage? - PullRequest
3 голосов
/ 13 марта 2012

На самом деле я использую следующий код для закрытия текущего окна:

window.close()

Дело в том, что он работает нормально в IE, но не работает в FF и Chrome.

Есть ли какое-то отличное решение для этого?

Ответы [ 5 ]

2 голосов
/ 19 февраля 2013

Я нашел частичное решение, Java твой друг. Это работает в кнопке, должно работать и в ссылке. Единственная проблема заключается в том, что при вызове из события, такого как onClose, текущая xpage теряет фокус, а текущие страницы остаются открытыми. Я попытался эмулировать ключи отправки, и он нажимает клавишу ESC. Он отлично работает от кнопки в. Кнопка на событии CLick

<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:var robot:java.awt.Robot= new java.awt.Robot;var event:java.awt.event.KeyEvent=java.awt.event.KeyEvent;

robot.keyPress (event.VK_ESCAPE); robot.keyRelease (event.VK_ESCAPE); enter code here}]]>

    </xp:eventHandler>
</xp:button>
2 голосов
/ 14 марта 2012
function windowclose(w) {
    try {
        if (dojo.isIE>=7) {
            w.open('', '_self', '');
            w.close();
        } else if (dojo.isIE==6) {
            w.opener = null;
            w.close();
        } else {
            if(!w.opener)
                w.opener = 'x';
            w.close(); 
        }
    } catch(e) {
        alert("To avoid data corruption/loss, please close this window immediately.");
    }
}

Для использования в качестве:

windowclose(window)
1 голос
/ 14 марта 2012

window.close () работает в 8.5.3, но только если родительский объект содержит объект, и он не будет этого делать, если у вас есть, например, xpage, который открывается внутри обычного приложения Notes или обычного представления.вам нужен window.open, чтобы получить это.

Я уже много раз изучал это, но безуспешно нашел ответ.Единственный способ, который я нашел, это то, что вам нужен плагин Mindoo XPage2Esclipse , чтобы заставить его работать.

0 голосов
/ 31 августа 2012

Я использую window.close без проблем в 8.5.3 приложениях с Chrome / FF / IE.

На главной странице приложения, "Case Document", у меня есть несколько CSJS в верхней части, которая называет страницу т.е.

window.name="mainWindow";

, а затем у меня есть кнопка, которая позволяет вам задать вопрос - это открывает новое окно / вкладку и также сохраняет основной документ по делу.В новом окне есть кнопка отправки, которая выполняет полное обновление, и в событии onComplete у меня есть следующий CSJS для обновления основного документа, чтобы вы могли видеть вопрос о главном документе в элементе управления повторением, который показывает потоки вопросов и ответов.Документы:

    if (window.opener!=null){
        window.opener.location.href = window.opener.location.href; 
        window.close();}
    else {
        alert("Can't refresh parent case doc - have you closed the window?");
    }

Надеюсь, это поможет

0 голосов
/ 29 августа 2012

Возможно, вам придется вызвать window.focus () перед вызовом window.close () в Firefox

...