【问题标题】:XPages - Open document in new tab with xp:openPageXPages - 使用 xp:openPage 在新选项卡中打开文档
【发布时间】:2014-12-20 14:32:02
【问题描述】:

我的系统上有这段代码,在 xp:viewColumn: 内:

<xp:eventHandler event="onclick" submit="true"refreshMode="complete">
    <xp:this.action>
        <xp:actionGroup>
            <xp:executeScript>
                <xp:this.script><!CDATA[#javascript:sessionScope.retornarPara=view.getPageName()}]]>
                </xp:this.script>
            </xp:executeScript>
            <xp:openPage target="openDocument" documentId="#javascript:entry.getDocument().getUniversalID()}">
                <xp:this.name>
                   <![CDATA[#{javascript:return "/xsp_arma.xsp"}]]>
                </xp:this.name>
            </xp:openPage>
        </xp:actionGroup>
    </xp:this.action>
</xp:eventHandler>

我需要 xp:openPage 打开的页面位于新选项卡中。那可能吗?我需要使用其他类型的代码吗?

谢谢。

【问题讨论】:

    标签: xpages openpages


    【解决方案1】:

    如果此事件处理程序位于 xp:link 内,您可以在所有属性中设置链接的目标:

    【讨论】:

      【解决方案2】:

      您可以使用 ssjs 代替简单的操作

      使用以下网址可以打开指定的文档:

      application.nsf/xpage.xsp?action=openDocument&documentId=DOCUMENT_ID

      var path = facesContext.getExternalContext().getRequest().getContextPath();
      
      var xpage = "byTag.xsp"
      
      var fullpath = path + "/" + xpage;
      
      var documentID = "**"
      
      
      var url = fullpath + "?action=openDocument&documentId="+ documentID
      
      
      view.postScript("window.open('" + url + "')")
      

      首先,您将获得当前数据库的路径,然后您可以指定将显示文档的 xpage,然后您可以传递 documentID,如 #javascript:entry.getDocument().getUniversalID()}

      调用csjs可以在新标签页中打开页面

      【讨论】:

      • 不确定这是否只影响 Domino 的某些版本,但在我的情况下是 9.0.1,我必须在 view.postScript 中的每个 CSJS 都用分号结束,否则它将不起作用。跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 2012-04-25
      相关资源
      最近更新 更多