2014-06-10 3 views
1

저는 primefaces tagcloud를 사용하고 있습니다. 그러나 내가 tagcloud에 주어진 링크를 클릭하면 같은 창에 열렸습니다. 그러나 tagcloud 링크를 클릭하면 같은 창에없는 새 창에서 열립니다. tagcloud 링크를 클릭하면 새 창이 열리길 원합니다. 누구든지이 주제에 대해 저를 도울 수 있습니까 ???primefaces 태그 클라우드를 새 창에서 엽니 다.

답변

0

자바 스크립트 솔루션 :

한 가지 가능한 방법은 자바 스크립트가 될 수 :

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

onclick을 열 지에서 링크를 방지하는 자바 스크립트 함수를 트리거합니다.

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 문을 실행할 수 있습니다.

이 가능한 솔루션은 테스트되지 않았지만 시도해보십시오.

+0

나는 또한이 하나와 함께 대상 요소가 시도했습니다. 하지만 여전히 같은 창에서 열리고 있습니다. – user3724609

+0

답변을 업데이트했습니다. 희망이 마침내 작동합니다. – QueryLars

+0

고마워요. 잘 작동합니다. 하지만 자바 스크립트를 제외하고 다른 방법이 있습니까 ??? – user3724609

관련 문제