使用 A4J,如何重新渲染 JavaScript 函数,并在重新渲染后调用它
using A4J, how do I rerender a javascript function, and call it after rerendering?
例如,我试过
<a4j:region id="scriptSuggested" >
<f:verbatim>
<script>
reallyUpdateIt = function () {
// javascript code that changes after aj4 ajax call is triggered
}
</script>
</f:verbatim>
<a4j:jsFunction reRender="scriptSuggested" ignoreDupResponses="true" ajaxSingle="true" name="updateSuggestionValues" action="#{bean.action}" oncomplete="reallyUpdateIt();">
<a4j:actionparam name="userInput" assignTo="#{bean.input}" />
</a4j:jsFunction>
</a4j:region>
我希望调用javascript函数
updateSuggestionValues('val');
将要执行操作
#{bean.action}
之后,它将重新渲染该区域scriptSuggested
,最后调用reallyUpdateIt()
,
除了更新reallyUpdateIt()
代码的部分外,所有工作都有效,我使用 firebug 检查了 ajax 响应,它带有预期的新 JavaScript 代码,但是当我调用 reallyUpdateIt()
时,旧代码被触发了。
我正在使用 JSF 1.2,富人脸 3.3.3,
事实证明,使用
<a4j:region id="scriptSuggested" >
不会生成 A4J 可以重新渲染的 html 部分,我不得不使用 <a4j:outputPanel>
,所以现在它更新了函数,我的代码现在看起来像:
<a4j:region >
<a4j:outputPanel id="scriptSuggested">
<f:verbatim>
<script>
reallyUpdateIt = function () {
// javascript code that changes after aj4 ajax call is triggered
}
</script>
</f:verbatim>
<a4j:jsFunction reRender="scriptSuggested" ignoreDupResponses="true" ajaxSingle="true" name="updateSuggestionValues" action="#{bean.action}" oncomplete="reallyUpdateIt();">
<a4j:actionparam name="userInput" assignTo="#{bean.input}" />
</a4j:jsFunction>
</a4j:outputPanel>
</a4j:region>
相关文章:
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 如何处理主干渲染和ajax调用
- 为什么要使用立即调用的函数来创建新对象
- 将原型调用为新对象中的另一个原型
- 如何在使用$timeout进行指令渲染后调用控制器方法
- 如何在新创建的模块中从Odoo v8中的Javascript文件中调用python函数
- 如何强制对模态进行新渲染
- Javascript渲染.如何编写Javascript;t在函数调用结束之前继续执行代码
- React 组件渲染在推送新 URL 时被多次调用
- dc传单js如何使用新ajax调用中的数据更新clopeth
- 为什么用新运算符调用Javascript全局对象时会有所不同
- Nodejs开始一个新的调用栈
- 关注标签触发模糊事件后新渲染的文本输入
- 为什么调用带有括号的setTimeout不会启动一个新的调用栈
- 加载时在新窗口调用函数
- NodeJS/Express:隐式地将数据从自定义中间件推送到渲染调用
- 当使用新道具调用渲染时,React JS没有完全更新视图
- 为什么我的React组件渲染调用两次,一次没有数据,然后有数据,但太晚的例外
- 无论如何,将参数保存在函数中,直到用新参数调用同一函数来替换它