在新窗口中打开primefaces tagcloud链接

时间:2014-06-10 04:58:02

标签: primefaces

我正在使用primefaces tagcloud。但是当我点击tagcloud上给出的链接时,它在同一个窗口中打开。但是当点击tagcloud链接时,它应该在一个不在同一个窗口上的新窗口中打开。 我想点击tagcloud链接时会打开一个新窗口。 任何人都可以帮助我这个主题???

1 个答案:

答案 0 :(得分:0)

JavaScript解决方案:

一种可能的方法是JavaScript:

<p:tagCloud model="#{tagCloudBean.model}" onclick="preventDefault(event)">
    <p:ajax event="select" update="msg" listener="#{tagCloudBean.onSelect}" />
</p:tagCloud>

onclick会触发一个JavaScript函数,阻止链接被打开。

function preventDefault(e) {
   e.preventDefault();
}

此外,通过添加ajax事件,您可以在托管bean中调用侦听器。

public void onSelect(SelectEvent event) {
    TagCloudItem item = (TagCloudItem) event.getObject();
    String url = item.getUrl();
    String script = "window.open('" + url + "');"
    RequestContext.getCurrentInstance().execute(script);
}

在那里你可以访问TagCloudItem的url并执行一个JavaScript语句,该语句应该打开一个新的浏览器窗口。

这种可能的解决方案尚未经过测试,但只需尝试一下。