我正在阅读this,大约一半是从服务器端调用JavaScript函数的策略。工作几乎完美,但我想阻止原始页面重新加载。尝试使用<a4j:commandLink>
执行此操作,但弹出页面根本没有显示。关于如何实现这一点的任何想法?
答案 0 :(得分:2)
在发布您正在运行的代码之前,您可能无法获得<a4j:commandLink/>
失败的具体答案
但是,如果没有任何其他库,执行客户端代码的一种hacky方法是使用PartialViewContext
。该机制类似于教程推荐的机制,只是您不需要任何实用程序来实现相同的效果。
String javaScriptText = "window.open('"+actionUrl+"', 'popupWindow', 'dependent=yes, menubar=no, toolbar=no');";
FacesContext cxt = FacesContext.getInstance();
PartialViewContext partialCtxt = ctxt.getPartialViewContext();
partialCtxt.getExecuteIds().add(javaScriptText);