有JSP页面 a.jsp;b.jsp;
c.jsp为a,b的组合页面:
<frameset id="PerSetTop" rows="80,*" frameborder="no"  framespacing="0" >
<frame name="PerTop"    src="<b:url value="a.jsp"/>" scrolling="no" noresize="noresize" />
<frame name="PerMain"   src='<b:url value="b.jsp"/>' scrolling="no" noresize="noresize" />
</frameset>然后在b.jsp中通过window.open打开页面e.jsp
其中e.jsp包含 f.jsp和g.jsp
<frameset id="e1" rows="80,*" frameborder="no"  framespacing="0" >
<frame name="f1"    src="<b:url value="f.jsp"/>" scrolling="no" noresize="noresize" />
<frame name="f2"   src='<b:url value="g.jsp"/>' scrolling="no" noresize="noresize" />
</frameset>
现在我操作g.jsp 让他刷新b.jsp.应该怎么写啊 。     网上查了说iframe不能使用opener;
parent.location.href="b.jsp"或者 parent.frames['framename'].location.href="b.jsp";
都不行。 都只能更新 e 或者g.
怎么能刷新 b.jsp 啊

解决方案 »

  1.   

    应该是window.top.opener吧,g.jsp是被包含在e.jsp里的,window.open与g.jsp没什么关系,需要通过g.jsp找到e.jsp再找b.jsp
      

  2.   

    window.top.opener.location.reload();
    我都测过了,这样可以在g.jsp里让c.jsp刷新,当然,你是要让c.jsp里的b.jsp刷新,剩下的问题应该很简单了吧?
      

  3.   

     嗯。可以了 ,高手。就是刷新效果不好,我是在G.jsp里面操作插入数据库中然后在b.jsp里面随变化显示。
      但是我插入5条,显示结果可能只有3条 。  我自己再改改。谢了  
      

  4.   

    那是还没插完你就回到页面开始刷了,我不太清楚你g.jsp里是具体顺序是什么,但感觉你是用ajax提交数据插入数据库,提交的过程中开始刷新才造成的,如果是这样,应该是在ajax的提交成功回调函数里才去刷新b.jsp