XPage中SSJS中的openNewWindow

时间:2016-06-08 12:10:46

标签: xpages

我想打开一个新页面,然后专注于新窗口。打开新窗口光标后,我的意思是关注前一个窗口。我必须通过范围变量传递值,所以我需要打开焦点一个新的窗口:)。

请找到我在下面尝试的内容。

<xp:link escape="true" text="Statement" id="link51"
                styleClass="linkNew" target="_blank">

                <xp:eventHandler event="onclick" submit="true"
                    refreshMode="complete">
                    <xp:this.action><![CDATA[#{javascript:try 
{
    sessionScope.type1="Customer1";
    view.postScript("var tempwindow = window.open('xspFrmStatementA.xsp?action=newDocument', '_blank'); tempwindow.focus();");
}
catch(e) 
{
    e.toString();
}
 }]]></xp:this.action>
                </xp:eventHandler>
            </xp:link>

2 个答案:

答案 0 :(得分:1)

我不太确定我完全理解这个问题?如果使用范围变量,则无需提供窗口焦点。

如果您设置了一个sessionScope变量,那么在您的会话期间,您可以从任何地方使用它,您只需要小心在其他地方写入其值。

您可以使用requestScope,它将从一个xpage发送一个请求,并获得一个具有相同请求范围变量名称的另一个xpage的响应。

我的建议可能完全错了,就像我提到的那样,我不确定我完全理解你想要达到的目标......

答案 1 :(得分:0)

当您使用target = _blank打开链接时,浏览器会跟随该链接,因此您实际上不需要执行任何操作。您只需指定目标URL即可。 我建议不要使用会话变量 - 如果用户打开多个窗口,您可能会产生不良影响。而是在url中使用特定于该窗口的参数。

我个人不喜欢应用程序决定让我弹出一个新窗口(我更喜欢标签)。如果我想在新窗口中打开链接,请按住Shift键单击。如果第二个窗口取决于父级,请考虑一个对话框或取消隐藏某些控件