正在从服务器端发起 JavaScript 调用

Initiating JavaScript call from server side

我正在阅读 this,大约一半是从服务器端调用 JavaScript 函数的策略。几乎完美地工作,但我想阻止重新加载原始页面。尝试使用 <a4j:commandLink> 执行此操作,但弹出页面根本没有出现。关于如何实现这一点有什么想法吗?

直到你 post 你的代码是 运行,你可能无法得到 <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);