【发布时间】:2013-12-27 06:19:22
【问题描述】:
我正在使用Richfaces 3.3.3Final,有时a4j:commandButton 操作未完成,
不再重新渲染页面。
示例代码:
<a4j:commandButton image="#{Icon.gotoIcon}"
id="gotoLinkId"
action="#{Home.gotoLinkAction}"
oncomplete="linkExpand('#{Home.id}');"
reRender="modalPanel,navigationMenu"/>
按钮点击动作后panelMenuGroup会自动展开,但有时页面会挂起。并且还尝试清除cookies,没有效果。
<rich:panelMenuGroup id="groupId"
label="About"
action="#{Home.homeLinkAction}"
expandMode="ajax"
reRender="navigationMenuId">
<!-- Development -->
<rich:panelMenuItem>
<a4j:commandLink id="developmentMenuId"
value="Development"
action="#{Home.developmentMenuAction}"
reRender="mainOutputPanelId">
<f:param id="ParamId" name="nameId" value="Development"/>
</a4j:commandLink>
</rich:panelMenuItem>
</rich:panelMenuGroup>
脚本:
function linkExpand(id)
{
var elementId = "iconNavigationId:"+id;
document.getElementById(elementId).click();
}
当我尝试手动展开 panelMenuGroup 时,不应再完成任何操作。我得到了以下异常,
例外:
debug[15:47:22,701]: Script evaluation succeeded
debug[15:47:22,701]: Evaluate script replaced area in document:
error[15:47:22,717]: . Error message: Invalid argument.
debug[15:47:22,717]: call selectSingleNode for id= org.ajax4jsf.oncomplete
debug[15:47:22,732]: Call request oncomplete function after processing updates
debug[15:47:22,748]: call selectSingleNode for id= _ajax:data
【问题讨论】:
-
你可以尝试在
linkExpandJS 函数中放入一个alert(只是为了知道代码是否正在执行)? -
@Apurv 它适用于除特定机器之外的所有 PC。它不仅发生在 IE 中,FireFox 和 Google Chrome 都无法正常工作。
-
它更难找到,有时它工作得很好,但有时它不会工作。
标签: java javascript ajax jsf richfaces