每个Ajax调用的Javascript(之前和之后)

Men*_*nno 5 java ajax jsf tinymce

因为我正在使用TinyMCE(请不要进入"Primefaces有一个编辑器"或类似的东西)我需要Javascript在每次Ajax调用之前和之后执行一小部分.我不希望为此编辑每个Ajax调用,因为有很多(并且这样做对于任何将来的维护都是不好的做法).

什么是在页面上执行Javascript任何Ajax调用之前和之后最优雅的解决方案?

注:我使用的是定制composite的TinyMCE-textarea.任何事件也都是这个对象也足够了.虽然请记住,实际的Ajax-trigger可能会由一个完全不同的对象调用(尽管可能会重新渲染composite).

Bal*_*usC 7

使用jsf.ajax.addOnEvent处理程序.

jsf.ajax.addOnEvent(function(data) {
    switch(data.status) {
        case "begin":
            // This is invoked right before ajax request is sent.
            break;

        case "complete":
            // This is invoked right after ajax response is returned.
            break;

        case "success":
            // This is invoked right after successful processing of ajax response and update of HTML DOM.
            // In case you're interested in error handling, use jsf.ajax.addOnError handler.
            break;
    }
});
Run Code Online (Sandbox Code Playgroud)

只需将其放在JS文件中,该文件包含<h:outputScript target="head">在<h:body>所需页面中.这将确保它在 JSF自己jsf.js包含jsf命名空间之后加载.