每个Ajaxcall上(之前和之后)的java Javascript
由于我正在使用TinyMCE
(请不要进入“Primefaces有一个编辑器”或任何类似的内容),我需要在每次Ajax
调用之前和之后执行一小段Javascript
。我不想编辑每一个Ajax
调用,因为有很多(这样做对于将来的任何维护都是不好的做法)
在页面上执行任何Ajax
调用之前和之后的Javascript
最优雅的解决方案是什么强>
注意:我正在为TinyMCE
-text区域使用一个自定义的composite
。这个对象的任何事件也足够了。但是请记住,实际的Ajax
-触发器可能会被完全不同的对象调用(尽管如此,仍然可以重新引发composite
)
# 1 楼答案
JSF的
<f:ajax>
标记有一个onevent
属性,用于在JSF应用程序中执行AJAX任务。基本上,它指定了一个三次调用的JavaScript函数:在发送AJAX调用之前,在接收AJAX响应之后,以及在更新HTMLDOM之后。正是出于这个目的,PrimeFaces将这些回调分别拆分为onstart
、onsuccess
、oncomplete
和onerror
为了避免重复,您可以在How to re-execute javascript function after form reRender?的答案中找到用法示例
# 2 楼答案
使用^{} 处理程序
只需将它放在一个JS文件中,该文件包含在所需页面的
<h:outputScript target="head">
中。这将确保它在包含jsf
名称空间的JSF自己的jsf.js
之后加载