【发布时间】:2013-11-28 17:01:49
【问题描述】:
我有这段 javascript:
function refreshGroup(){
var obj1 = document.getElementById("refresh0:link0");
var obj2 = document.getElementById("refresh1:link1");
obj1.click();
obj2.click();
};
并且最终会在列表中添加更多对象。每个对象都是页面上的一个链接。我想创建一个方法来刷新特定链接组的所有链接。链接与更新与链接关联的数据的支持 bean 方法相关联。这可以满足我的要求,只是它会等待每个链接完成运行,然后再单击下一个链接。有什么办法让它一次点击全部?
编辑:
这是我试图模拟点击 (JSF) 的一段代码:
<h:form id="refresh#{loop.index}" >
<h:commandLink class="link" id="link#{loop.index}" value="#{a.status}" >
<f:ajax listener="#{a.getCheckAppMonitor}"
render=":errs#{loop.index} :refresh#{loop.index} :errs_#{i+1}"
onevent="refreshMoreLessLinks" />
</h:commandLink> <img id="img_#{loop.index}"
class="hidden"
src="resources/images/ajax-loader.gif"/>
</h:form>
JSF 将其生成如下所示:
<FORM id=refresh0 encType=application/x-www-form-urlencoded method=post
name=refresh0 action=/appmonitor/faces/appmonitorgreeting.xhtml><INPUT
value=refresh0 type=hidden name=refresh0> <A id=refresh0:link0
onclick="mojarra.ab(this,event,'action',0,'errs0 refresh0 errs_1',{'onevent':refreshMoreLessLinks});return false"
href="http://localhost:8080/appmonitor/faces/appmonitorgreeting.xhtml#">OK</A> <IMG
id=img_0 class=hidden
src="appmonitorgreeting_xhtml_files/ajax-loader.gif"><INPUT
id=javax.faces.ViewState value=7494473519347208075:5184408304577602221
type=hidden name=javax.faces.ViewState autocomplete="off"> </FORM>
【问题讨论】:
-
您是否考虑过只创建一个单一的 JSF 操作方法来调用所有这些目标方法,然后通过单击执行该单一操作方法?
-
@BalusC 你是说我应该有一个
commandLink,它为每个对象调用这个:listener="#{a.getCheckAppMonitor}"?我创建了一个方法,但无法让render=@all工作。见this -
如果您从开发人员的角度而不是最终用户的角度来描述“崩溃”会很有帮助。
-
知道IE是否有日志吗?我收到一个消息框,说 IE 已停止工作,是否要重新启动程序。我点击是,它会恢复选项卡。
-
好的,您使用的是哪个 JSF impl/version?您是否在只有
<html><h:head/><h:body><h:form><h:commandButton><f:ajax>的简约页面上尝试过@all?众所周知,IE8 在大多数奇怪的时刻都会崩溃,另见例如java.net/jira/browse/JAVASERVERFACES-2873
标签: javascript jsf