从服务器端启动JavaScript调用

时间:2015-03-10 16:32:42

标签: javascript jsf

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

1 个答案:

答案 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);