Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在每次Ajax调用之前和之后使用Javascript_Java_Ajax_Jsf_Tinymce - Fatal编程技术网

在每次Ajax调用之前和之后使用Javascript

在每次Ajax调用之前和之后使用Javascript,java,ajax,jsf,tinymce,Java,Ajax,Jsf,Tinymce,由于我使用的是TinyMCE(请不要进入“Primefaces有一个编辑器”或任何类似的内容),我需要在每次Ajax调用前后执行一小段Javascript。我不希望编辑每一个Ajax调用,因为有很多调用(这样做对于将来的维护是不好的做法) 在页面上执行Javascriptpre-and-post-anyAjax-调用最优雅的解决方案是什么? 注意:我正在为TinyMCE-text区域使用一个自定义的composite。这个对象的任何事件也足够了。尽管要记住,实际的Ajax-触发器可能会被一个完全

由于我使用的是
TinyMCE
(请不要进入“Primefaces有一个编辑器”或任何类似的内容),我需要在每次
Ajax
调用前后执行一小段
Javascript
。我不希望编辑每一个Ajax调用,因为有很多调用(这样做对于将来的维护是不好的做法)

在页面上执行
Javascript
pre-and-post-any
Ajax
-调用最优雅的解决方案是什么?


注意:我正在为
TinyMCE
-text区域使用一个自定义的
composite
。这个对象的任何事件也足够了。尽管要记住,实际的
Ajax
-触发器可能会被一个完全不同的对象调用(尽管可能会重新启动
复合
)。

JSF的
标记有一个
onevent
属性,用于在JSF应用程序中执行Ajax任务。基本上,它指定了一个三次调用的JavaScript函数:在发送AJAX调用之前,在接收AJAX响应之后,以及在更新HTMLDOM之后。正是出于这个目的,PrimeFaces将这些回调分别拆分为
onstart
onsuccess
oncomplete
onerror

为了避免重复,您可以在的答案中找到用法示例。

使用处理程序


只需将它放在一个JS文件中,该文件包含在所需页面的
中。这将确保它在JSF自己的
JSF.js
包含
JSF
命名空间之后加载。

是的,我知道,但这意味着我需要编辑页面上的每个
Ajax
-调用。正如我在问题中所说,我正在寻找一种避免这种情况的方法。例如:一个<<代码> f:事件< /代码>,它在页面上的每个<代码> Ajax调用< /代码>中被触发。在这种情况下,您可以研究JSF.JS并建立几个JS帮助函数来发送Ajax请求,而不是通过标签,而是通过JavaScript。HMM会考虑它,没有默认的代码> JSF -可以这样说吗?我不知道。但出于您的原因,研究编程JS方法绝对是值得的。我在使用
jsf.ajax.addOnEvent
时遇到了一个问题,我无法解决这个问题,您可以看看它(问题更新)吗?显然,您没有使用
触发ajax调用。好吧,似乎我误解了这个函数。我想它也会在
actionListeners
上执行。将相应地更改我的代码,再次感谢。这与是否使用动作侦听器无关。只需在命令组件中嵌套一个
,但我很惊讶您明确地询问如何侦听ajax请求,而您根本没有触发ajax请求。
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;
    }
});