How do I close my window in Xpage?

2019-01-28 07:09发布

Actually I am using the following code for closing my current window:

window.close()

The thing is, it is working fine in IE, but it is not working in FF and Chrome.

Is their any great solution for doing this?

5条回答
劫难
2楼-- · 2019-01-28 07:35
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.");
    }
}

To be used as:

windowclose(window)
查看更多
Deceive 欺骗
3楼-- · 2019-01-28 07:43

window.close() works in 8.5.3 but only if parent contains an object and it will not do this if you have i.e an xpage that is opened inside an ordinary Notes application or a ordinary view. you need a window.open to get this.

I have investigated alot about this a while ago but no luck finding an answer. The only way I found is that you need the Mindoo XPage2Esclipse plugin to get this to work.

查看更多
Explosion°爆炸
4楼-- · 2019-01-28 07:45

I found a partial solution, Java is your friend. It works in a button should work in a link too. The only problem is when called from an event like onClose the current xpage looses focus and the current pages stays open. I tried to emulate send keys and it presses the ESC key. It works fine from a button in. Button on CLick event

<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>
查看更多
戒情不戒烟
5楼-- · 2019-01-28 07:49

I use window.close with no problems in 8.5.3 apps with Chrome / FF / IE.

In the main page of an app, the "Case Document" I have some CSJS at the top that names the page ie.

window.name="mainWindow";

and then I have a button that allows you to ask a question - this pops up a new window/tab and keeps the main case doc open as well. In the new window, there's a submit button that does a full update and in the onComplete event I have the following CSJS to update the main doc so you can see the question on the main doc in the repeat control that shows the threads of Q & A docs:

    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?");
    }

Hope this helps

查看更多
聊天终结者
6楼-- · 2019-01-28 08:01

You may have to call window.focus() before calling window.close() in Firefox

查看更多
登录 后发表回答