2011-10-21 37 views
5

Tenemos a4j:outputPanel que es ajaxRendered. ¿Hay alguna manera de llamar a una función de JavaScript cada vez que se (re) renderiza? Sé que podríamos poner una llamada en cada elemento que podría enviarse con oncomplete, pero eso realmente no es mantenible.Cómo llamar a una función Javascript en render en JSF 1.2/Richfaces 3.3?

Detalles:

  • JSF 1.2
  • RichFaces 3,3

Ejemplo (onComplete no está realmente disponible en la etiqueta outputPanel):

<a4j:outputPanel ajaxRendered="true" oncomplete="myJSFunc()"> 
    <h:outputText value="Test-aroo" /> 
</a4j:outputPanel> 
<!-- other inputs, buttons and stuff --> 

actualización Might la biblioteca jQuery puede ayudar (es integrado en RichFaces)? Estoy buscando usar .live() para tal vez registrarme con el evento incompleto. Seguiré experimentando y actualizando con el progreso.

actualización no he tenido la oportunidad de poner en práctica la solución de jQuery, pero como mi respuesta muestra a continuación myJSFunc() solo pueden ponerse directamente dentro de las etiquetas prestados.

Respuesta

8

Una solución es poner el código JavaScript en una etiqueta de script dentro de la outputPanel:

<a4j:outputPanel ajaxRendered="true"> 
    <h:outputText value="Test-aroo” /> 
    <script type=”text/javascript”>myJSFunc();</script> 
</a4j:outputPanel> 
0

Debería llamar al comando complete en el componente que dispara la solicitud de Ajax. a4j: outputPanel no tiene un atributo oncomplete.

+0

derecha, entiendo que outputPanel no tiene un atributo onComplete. Hay demasiados componentes para administrar en completo en todos ellos. Estoy buscando escuchar el evento globalmente. – Adam

Cuestiones relacionadas