Xpages链接打开新浏览器选项卡

时间:2014-05-01 12:03:02

标签: xpages

我在stackoverflow中发现了一些类似的问题,但没有完全匹配。我正在尝试修改Xpages项目,其中搜索结果显示在动态视图面板中。搜索结果的第一列是在同一页面中打开记录的链接。我想要做的是让这个链接在一个单独的页面中打开记录。视图的"Dynamic"部分令我感到困惑,我认为因为在窗口中没有"Column Name""Column View"添加。我可以看到开放或target="_blank" 。我该怎么做呢?

XPage的相关部分仅包含以下内容;

<xp:panel id="maincontentpanel">
    <xe:dynamicViewPanel rows="30" id="dynamicViewPanel1" width="100%">
      <xe:this.data>
         <xp:dominoView viewName="(keywordsUser)" var="view">
         </xp:dominoView>
      </xe:this.data>
   </xe:dynamicViewPanel>
</xp:panel>

在HTML中查看源时,可单击列显示以下内容;

<tr>
    <td class="xspColumnViewStart">
        <a id="view:_id1:cc4cconeuilayout:OneUIMainAreaCallback:dynamicViewPanel1:0:_id6:_internalColumnLink"
           href="*routetoourrecord*";action=editDocument"
           class="xspLinkViewColumn">2014</a>
    </td>

2 个答案:

答案 0 :(得分:1)

动态视图面板有一个属性&#34; target&#34;在所有属性中,您可以选择&#34; _blank&#34;。这应该将属性target="_blank"添加到第一列中的链接。但是,不幸的是,这只适用于 Notes客户端

所以,我们不能设置任何属性。幸运的是,渲染链接有一个自己的类&#34; xspLinkViewColumn&#34; (请参阅源代码HTML示例)。使用dojo.query,我们可以获取此类的所有元素,并在客户端添加目标属性。

只需将以下事件代码添加到XPage:

<xp:eventHandler
    event="onClientLoad"
    submit="false">
    <xp:this.script><![CDATA[
         dojo.query(".xspLinkViewColumn").attr("target", "_blank");
    ]]></xp:this.script>
</xp:eventHandler>

所有链接都会以这种方式获取属性target="_blank",文档将在新的浏览器标签中打开。

答案 1 :(得分:1)

只是让我们知道代码不能与Bootstrap主题一起使用。

相反,您可以使用

dojo.query('[id$="_internalColumnLink"]').attr("target", "_blank");