如何关闭Xpage中的窗口?

时间:2012-03-13 10:42:42

标签: javascript lotus-notes xpages

实际上我使用以下代码来关闭当前窗口:

window.close()

问题是,它在IE中运行良好,但它在FF和Chrome中无效。

这样做有什么好办法吗?

4 个答案:

答案 0 :(得分:2)

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 :(得分:2)

我找到了部分解决方案,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}]]&GT;

    </xp:eventHandler>
</xp:button>

答案 2 :(得分:0)

在Firefox中调用window.close()之前,您可能需要调用window.focus()

答案 3 :(得分:0)

我在使用Chrome / FF / IE的8.5.3应用程序中使用window.close没有问题。

在应用程序的主页面中,“案例文档”我在顶部有一些CSJS,用于命名页面即。

window.name="mainWindow";

然后我有一个允许你提出问题的按钮 - 这会弹出一个新窗口/标签,同时保持主案例文档打开。在新窗口中,有一个完整更新的提交按钮,在onComplete事件中,我有以下CSJS来更新主文档,这样你就可以在重复控件中的主文档上看到问题,显示Q&amp;的线程;文档:

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

希望这有帮助