我正在阅读this,大约一半是从服务器端调用JavaScript函数的策略。几乎可以完美运行,但是我想防止重新加载原始页面。尝试使用<a4j:commandLink>
执行此操作,但随后根本没有出现弹出页面。关于如何实现这一目标的任何想法?
最佳答案
在发布正在运行的代码之前,您可能无法获得<a4j:commandLink/>
失败的具体答案。
但是,如果没有任何其他库,执行客户端代码的一种怪异方法就是使用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);
关于javascript - 从服务器端启动JavaScript调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28969157/