如何在 JSF 1.2/Richfaces 3.3 中的渲染中调用 Javascript 函数?

发布于 2024-12-11 00:25:14 字数 701 浏览 0 评论 0原文

我们有一个 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() 可以直接放在渲染的标签内。

We have an a4j:outputPanel that is ajaxRendered. Is there a way to call a javascript function each time it is (re)rendered? I know that we could put a call in every element that could possibly submit with oncomplete, but that really isn't practicably maintainable.

Details:

  • JSF 1.2
  • Richfaces 3.3

Example (oncomplete isn't actually available on the outputPanel tag):

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

Update Might the jQuery library be able to help (it's built into RichFaces)? I'm looking at using .live() to maybe register with the oncomplete event. I'll keep experimenting and update with progress.

Update I didn't get a chance to implement the jQuery solution, but as my answer shows below myJSFunc() can just be put directly inside the rendered tags.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冬天的雪花 2024-12-18 00:25:14

解决方案是将 javascript 放在 outputPanel 内的 script 标记中:

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

A solution is to put the javascript in a script tag inside the outputPanel:

<a4j:outputPanel ajaxRendered="true">
    <h:outputText value="Test-aroo" />
    <script type="text/javascript">myJSFunc();</script>
</a4j:outputPanel>
短暂陪伴 2024-12-18 00:25:14

您需要在触发 Ajax 请求的组件上调用 oncomplete。 a4j:outputPanel 没有 oncomplete 属性。

You would need to call oncomplete on the component that fires the Ajax request. a4j:outputPanel doesn't have oncomplete attribute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文