我很难在新标签页中打开xpage。我尝试了很多方法,如下面的链接所示 No luck while opening a link in new tab using 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>
答案 0 :(得分:1)
您可以计算URL服务器端,然后使用target属性。在这里,我使用您的简单示例,但您可以进行各种计算:
<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>
您也可以将值计算更改为“在页面加载时计算”(只需将#更改为$)。
答案 1 :(得分:0)
由于您使用的是Serverside Javascript,因此您可以使用它来打开新窗口。没有必要使用view.postScript来做同样的事情。
有几种方法可以做到。一种方法是查看facesContext.getExternalContext()...
view.postScript有时在某些上下文中不起作用,当它不起作用时,它通常不会返回错误,它只是没有做任何事情。
编辑:链接onclick事件也支持客户端javascript,如果你真的很喜欢使用它,那么把你的代码放在那里。默认选项卡将打开到服务器端,您必须单击“客户端”才能添加代码。