Как вызвать функцию Javascript при рендеринге в JSF 1.2 / Richfaces 3.3? - PullRequest
5 голосов
/ 21 октября 2011

У нас есть a4j:outputPanel, то есть ajaxRendered. Есть ли способ вызывать функцию javascript каждый раз, когда она (пере) отображается? Я знаю, что мы могли бы поместить вызов в каждый элемент, который мог бы отправить с oncomplete, но это на самом деле практически невозможно обслуживать.

подробности:

  • JSF 1,2
  • Richfaces 3.3

Пример (oncomplete на самом деле недоступно для тега outputPanel):

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

Обновление Может ли библиотека jQuery помочь (она встроена в RichFaces)? Я смотрю на использование .live () для регистрации в событии oncomplete. Я буду продолжать экспериментировать и обновляться с прогрессом.

Обновление У меня не было возможности реализовать решение jQuery, но, как показывает мой ответ ниже, myJSFunc() можно просто поместить непосредственно в отображаемые теги.

Ответы [ 2 ]

8 голосов
/ 25 октября 2011

Решение состоит в том, чтобы поместить javascript в тег script внутри outputPanel:

<a4j:outputPanel ajaxRendered="true">
    <h:outputText value="Test-aroo” />
    <script type=”text/javascript”>myJSFunc();</script>
</a4j:outputPanel>
0 голосов
/ 21 октября 2011

Вам необходимо вызвать oncomplete для компонента, который запускает Ajax-запрос. a4j: outputPanel не имеет атрибута oncomplete.

...