Как мне закрыть окно в Xpage?

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

window.close()

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

Есть ли у них отличное решение для этого?

5 ответов

Решение

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

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

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)

Я нашел частичное решение, 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>

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

Я использую 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?");
    }

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

Другие вопросы по тегам