1

我必须实现以下请求,但我所有的尝试都失败了:

如果您单击 XPage (XPiNC) 中的按钮/链接,则会在另一个 Notes 数据库中创建经典的 Notes-Document。这个新的 Notes 文档必须在带有 XPage 的选项卡旁边的新客户端选项卡中打开。

我已经尝试了几种方法

FacesContext.getCurrentInstance().getExternalContext().redirect("notes://server/anotherdb/newdocumentunid?openDocument")

但它们都没有导致预期的结果(打开了 3 个选项卡或 XPage 选项卡为空)。

4

3 回答 3

2

您是否尝试过在客户端 javascript 中使用 window.open。

添加代码 window.open("Notes://database/view/document?EditDocument")

那应该工作。

于 2013-05-21T11:54:08.570 回答
0

编辑:

可以使用view.postScript().

    <xp:button value="client" id="button3">
        <xp:eventHandler event="onclick" submit="true" refreshMode="partial" disableValidators="true">
            <xp:this.action><![CDATA[#{javascript:var url = myJavaClass.createNewDocumentAndReturnNotesUrl(); view.postScript("window.open('" + url + "')");}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>

window.open(url)在其他数据库中创建文档并获取新文档的 URL 后,从 SSJS 执行CSJS 函数。这样,仅当单击按钮并在新窗口中打开新文档时才会执行代码。

于 2013-05-21T11:21:47.407 回答
0

实际上,要在其他数据库中创建文档,您无需担心文档的 UNID 是什么。只需使用这个 javascript:

window.open("Notes://database/form?CreateDocument")
于 2013-05-21T16:02:17.687 回答