【问题标题】:How to open a classical Notes document in a new client tab, triggered by a XPage如何在由 XPage 触发的新客户端选项卡中打开经典 Notes 文档
【发布时间】:2013-05-21 11:12:37
【问题描述】:

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

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

我尝试了几种方法

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

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

【问题讨论】:

    标签: xpages lotus-notes xpinc


    【解决方案1】:

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

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

    应该可以的。

    【讨论】:

    • 感谢 Fredrik,但后来我遇到了这个问题:要获得新经典文档的 unid,我必须首先创建/保存它。所以每次都会计算 url "Notes://database/view/document?EditDocument",即每次加载 XPage 时,都会在另一个数据库中保存一个新的经典文档。
    • 您想要一个在另一个数据库中创建文档并在新选项卡中打开该文档的按钮对吗?
    • 我已经修改了我的答案,抱歉没有看到 Knut 的答案
    • 感谢您的帮助,弗雷德里克。 Knut 的建议是解决我问题的完美方案。
    【解决方案2】:

    编辑:

    可以使用view.postScript()从SSJS执行CSJS。

        <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>
    

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

    【讨论】:

    • 感谢 Knut,但我在使用此解决方案时遇到了与上面评论中提到的相同的问题:要获得 docid,我必须首先保存新文档。因此,每次加载我的 XPage 并计算 url 时,都会在另一个数据库中创建/保存一个新文档,而无需单击任何按钮。我的代码:&lt;xp:button value="client" id="button3"&gt; &lt;xp:eventHandler event="onclick" submit="false"&gt; &lt;xp:this.script&gt; &lt;![CDATA[window.open('#{javascript:myJavaClass.createNewDocument();}')]]&gt; &lt;/xp:this.script&gt; &lt;/xp:eventHandler&gt; &lt;/xp:button&gt; JavaClass 方法返回计算的 url
    【解决方案3】:

    其实,要在其他数据库中创建一个文档,你不必担心文档的UNID是什么。只需使用这个 javascript:

    window.open("Notes://database/form?CreateDocument")
    

    【讨论】:

    • 谢谢你,大卫。但有了 Knut 的解决方案,我有更多选择。
    • 我很好奇它打开了哪些选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2015-12-15
    • 2013-02-21
    • 2014-12-20
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    相关资源
    最近更新 更多