这是jsp
<frameset rows="64,*" FRAMEBORDER="no" >
<frame src="./jsp/banner.jsp?SUB_APP_NAME=SMART_DOC" name="Banner" scrolling="no" marginwidth="0" marginheight="0" noresize="noresize">
<frameset cols="220,*" FRAMEBORDER="no">
<frame src="./servlet/JSActaSmartDocReportsTree" name="SmartDoc" marginwidth="0" marginheight="0" scrolling="no" target="main">
<frame src="./servlet/JSSelfDocScreenShotProject" name="AvailableReports" marginwidth="0" marginheight="0" >
</frameset>
</frameset>上面点了一个按钮后,会执行这个javascript.function onRepoChange(selectedRepo,autodocExpand,servlet,module)
{ if(opener.top.frames[2])
{
opener.top.frames[2].window.location.href= "../servlet/"+ servlet + "?REPONAME="+encodeURIComponentNew(selectedRepo)+"&CURRENT_AUTODOC_EXPAND="+autodocExpand+"&module="+module;
opener.top.frames[1].window.location.reload(true);
}
return true;
}现在是这么实现的,
1. opener.top.frames[2].window.location.href 会将repo=xxx,
2. 这个属性通过url传回去,然后session中设置好属性!
3. 然后opener.top.frames[1].window.location.reload(true);会从session中读取到这个repo的值!如果【2】 先执行,【1】再执行,没有问题!问题是,通过debug发现,没有决定他们的顺序,有时候【1】先执行,在执行【2】,
1. 有没有什么办法让【1】等【2】执行完再执行?
<frameset rows="64,*" FRAMEBORDER="no" >
<frame src="./jsp/banner.jsp?SUB_APP_NAME=SMART_DOC" name="Banner" scrolling="no" marginwidth="0" marginheight="0" noresize="noresize">
<frameset cols="220,*" FRAMEBORDER="no">
<frame src="./servlet/JSActaSmartDocReportsTree" name="SmartDoc" marginwidth="0" marginheight="0" scrolling="no" target="main">
<frame src="./servlet/JSSelfDocScreenShotProject" name="AvailableReports" marginwidth="0" marginheight="0" >
</frameset>
</frameset>上面点了一个按钮后,会执行这个javascript.function onRepoChange(selectedRepo,autodocExpand,servlet,module)
{ if(opener.top.frames[2])
{
opener.top.frames[2].window.location.href= "../servlet/"+ servlet + "?REPONAME="+encodeURIComponentNew(selectedRepo)+"&CURRENT_AUTODOC_EXPAND="+autodocExpand+"&module="+module;
opener.top.frames[1].window.location.reload(true);
}
return true;
}现在是这么实现的,
1. opener.top.frames[2].window.location.href 会将repo=xxx,
2. 这个属性通过url传回去,然后session中设置好属性!
3. 然后opener.top.frames[1].window.location.reload(true);会从session中读取到这个repo的值!如果【2】 先执行,【1】再执行,没有问题!问题是,通过debug发现,没有决定他们的顺序,有时候【1】先执行,在执行【2】,
1. 有没有什么办法让【1】等【2】执行完再执行?
能不能具体一点? 如果按照我上面的写法,[2] 应该先于 【1】 对吧!我试着在中间加了一个alert(),顺序就没有问题了....但这不是解决问题的方法...