0

我很难在新标签中打开 xpage。我已经尝试了以下链接中建议的许多方法在 使用 XPages 打开新选项卡中的链接时没有运气,但没有运气。我不能使用“链接类型”,因为我通过传递父文档unid、文档unid、frompage等来动态生成url。这就是我使用链接的“onClick”事件的原因。任何帮助将不胜感激。在此先感谢下面是我的代码。

 <?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:link escape="true" text="New Call"id="linkNewCall">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="linkNewCall">
<xp:this.action><![CDATA[#{javascript:var url="www.google.com"
//view.postScript("window.open('" + url + "')");
view.postScript("var tempwindow = window.open('" + url + "','_blank'); tempwindow.focus();")}]]></xp:this.action>
</xp:eventHandler></xp:link>
</xp:view>
4

2 回答 2

1

您可以在服务器端计算 URL,然后使用目标属性。在这里,我使用的是您的简单示例,但您可以进行各种计算:

<xp:link escape="false" id="linkNewCall" text="New Call" target="_blank">
    <xp:this.value><![CDATA[#{javascript:
        var href = "http://www.google.com";
        return href;
    }]]></xp:this.value>
</xp:link>

您也可以将值计算更改为“在页面加载时计算”(只需将 # 更改为 $)。

于 2013-10-24T20:53:16.497 回答
0

由于您使用的是服务器端 Javascript,因此您可以使用它来打开新窗口。不需要使用 view.postScript 来做同样的事情。

有几种方法可以做到这一点。一种方法是查看 facesContext.getExternalContext() ...

view.postScript 有时在某些情况下不起作用,当它不起作用时,它通常不会返回错误,它只是什么都不做。

编辑:链接 onclick 事件也支持客户端 javascript,如果您真的很喜欢使用它,那么将您的代码放在那里。默认选项卡打开到服务器端,您必须单击“客户端”添加代码。

于 2013-10-24T18:21:58.943 回答