从服务器端调用JavaScript方法

3
我想从服务器端执行一个 JavaScript 方法。 在我的情况下,当我更改选项卡时,在托管的 Bean 中,我想调用 JavaScript 方法。 有什么方法可以做到这一点吗?
我尝试使用 RequestContext。 但是,它直到监听器方法完成执行后才被调用。
RequestContext 在当前 ajax 请求完成后执行一个 javascript。 我想在 ajax 请求开始时执行 JavaScript 方法。
我想调用的 JavaScript 方法(在客户端编写)。
查看了 http://metoojava.wordpress.com/2010/06/20/execute-javascript-from-java/http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html 但是没有找到解决此问题的方法。
使用 jsf 2.1 和 primefaces 4.0。
我的代码如下:
   <p:tabView id="detailsId" widgetVar="detailsVar" >
        <p:ajax event="tabChange"  listener="#{mywBean.onTabChange}"/>
        <p:tab title="Service">
        </p:tab>
        <p:tab title="Books">
        </p:tab>
    </p:tabView>

<script>

function myJavascriptMethod() {
     alert("Hello All..");
     // Some functionality
}

</script>

管理的Bean

 public void onTabChange(TabChangeEvent event) {
        String tabId = event.getTab().getId();
        if(tabId.equalsIgnoreCase("Books")) {
           **need to call javascript method here**
          //Some Functionality
        }
    }
1个回答

2

RequestContext 在当前 ajax 请求完成后执行 JavaScript。我希望在 ajax 请求开始时执行 JavaScript 方法。 - Eves
为什么不先执行你的JavaScript,然后在它完成后调用你的托管Bean呢? - BlackBlaze
您可以使用PrimeFaces远程命令组件(<p:remoteCommand>)。http://www.primefaces.org/showcase/ui/ajax/remoteCommand.xhtml - BlackBlaze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接