我正在使用primefaces tagcloud。但是当我点击tagcloud上给出的链接时,它在同一个窗口中打开。但是当点击tagcloud链接时,它应该在一个不在同一个窗口上的新窗口中打开。 我想点击tagcloud链接时会打开一个新窗口。 任何人都可以帮助我这个主题???
答案 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语句,该语句应该打开一个新的浏览器窗口。
这种可能的解决方案尚未经过测试,但只需尝试一下。