Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xPages:对话框关闭时重定向到主页_Xpages_Xpages Ssjs_Xpages Extlib - Fatal编程技术网

xPages:对话框关闭时重定向到主页

xPages:对话框关闭时重定向到主页,xpages,xpages-ssjs,xpages-extlib,Xpages,Xpages Ssjs,Xpages Extlib,我有一个联系表单,我使用OpenNTF代码段中的电子邮件bean发送电子邮件。那部分效果很好 一旦发送电子邮件,我会显示一个对话框,其中包含一条小消息,让用户知道消息已发送。我想做的是,当用户点击对话框上的“关闭”按钮时,将其重定向到主页,但我想不通 以下是按钮中的代码: <xp:button id="button1" value="Send"> <xp:eventHandler event="onclick" submit="true" refresh

我有一个联系表单,我使用OpenNTF代码段中的电子邮件bean发送电子邮件。那部分效果很好

一旦发送电子邮件,我会显示一个对话框,其中包含一条小消息,让用户知道消息已发送。我想做的是,当用户点击对话框上的“关闭”按钮时,将其重定向到主页,但我想不通

以下是按钮中的代码:

<xp:button id="button1" value="Send">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
    <xp:this.action><![CDATA[#{javascript:try{
    //var sendTo = document1.getItemValueString("SendTo");
    var sendTo = AppConfig.getAppEmailAddress();
    //var subject = document1.getItemValueString("Subject");
    var subject = "Belair Docum: " + document1.getItemValueString("category") + " - " + document1.getItemValueString("Subject");
    //var senderEmail = "noreply@belairdirect.com";
    var senderName = userBean.abbreviatedName;
    emailBean.setSendTo(sendTo);
    emailBean.setSubject(subject);
    emailBean.setSenderEmail(senderName);
    emailBean.setSenderName(senderName);
    emailBean.setDocument(document1);
    emailBean.setFieldName("Body");
    emailBean.setBannerHTML("<p>Email sent from belair Docum 2.0</p><hr>");
    //emailBean.setFooterHTML("<hr><p>Email sent from belair Docum 2.0</p>");
    emailBean.send();

    var d = getComponent('dialog1');
    d.show();
}catch(e){
    print(e.getMessage());
}}]]></xp:this.action>
        </xp:eventHandler>
</xp:button>
这可能是刷新问题,或者我没有使用正确的事件,或者我需要使用不同的代码

谢谢:D


使用view.postScript()将其添加到SSJS代码的末尾,并将客户端javascript放入其中,以重定向到任何您想要的位置,这将是一个很好的例子。它只会在服务器端代码完成后运行。

史蒂夫,我最终得到了一个非常简单的解决方案

在对话框的onHide事件(而不是onClose)中,我放置了以下客户端小片段:

path = location.pathname.split('.nsf')[0] + '.nsf/';
window.location.href = path + "/home.xsp";
这就行了。按钮仍然需要部分刷新才能触发对话框,我已经将其放在对话框本身上(dialog1)


不过,我会试试你的解决方案D

很高兴你把它修好了。我会了解view.postScript(),因为它非常有用。使用onHide()没有错,但以后可能更难理解。使用view.postScript()可以将所有代码保持在一起。
path = location.pathname.split('.nsf')[0] + '.nsf/';
window.location.href = path + "/home.xsp";