我必须实现以下请求,但所有尝试都失败了:
如果单击XPage(XPiNC)中的按钮/链接,则应在另一个Notes数据库中创建经典Notes文档。必须在带有XPage的选项卡旁边的新客户端选项卡中打开此新Notes文档。
我已经尝试了几种方法
FacesContext.getCurrentInstance().getExternalContext().redirect("notes://server/anotherdb/newdocumentunid?openDocument")
但没有一个导致所需的结果(打开了3个标签或XPage标签为空)。
答案 0 :(得分:2)
您是否尝试在客户端javascript中使用window.open。
添加代码window.open(“Notes:// database / view / document?EditDocument”)
应该有用。
答案 1 :(得分:0)
编辑:
可以使用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>
在其他数据库中创建文档并获取新文档的URL后,从SSJS执行CSJS函数window.open(url)
。这样,只有在单击按钮并在新窗口中打开新文档时才会执行代码。
答案 2 :(得分:0)
实际上,要在其他数据库中创建文档,您无需担心文档的UNID是什么。只需使用此javascript:
window.open("Notes://database/form?CreateDocument")