frameset中jsp页面里面用到ajax提交之后,页面就不能对应相应的位置

index.jsp
如下
<frameset rows="70,*,24" frameborder="NO" border="0" framespacing="0"  id=rowFrame>
  <frame  src="" name="topFrame" scrolling="NO" noresize id=topFrame>
  <frameset cols="185,*"  border="1" framespacing="0" id=colFrame >
      <frame src="agitarone_left.jsp" name="leftFrame" border="0" scrolling="NO" noresize id=leftFrame>
      <frame src="" name="mainFrame" scrolling="auto" noresize id=mainFrame>
  </frameset>
  <frame src="" name="bottomFrame" noresize scrolling="no">
</frameset>
agitarone_left.jsp

如下

<dd><a href="/agitar-server/index_body.jsp" target=mainFrame><b>主页</b></a></dd>
<dd><a href="/agitar-server/admin.jsp" target=mainFrame><b>服务器管理</b></a></dd>
<dd><a href="/agitar-server/docs.jsp" target=mainFrame><b>帮助文档</b></a></dd>

index_body.jsp

中有XMLHttpRequest     req.open("GET", url, true);   当提交之后再次点击主页,不是出现在 mainFrame 所对应的位置,而是弹出了新的窗口,

这个问题该怎么解决。。

5个回答

“IE是个不能以常理揣度的浏览器”。时不时出现的各种问题总是让人烦躁。但由于其庞大的用户群,却又不能舍弃。闲话少说,说正题:如果在同一页面中有两个iframe,NAME分别为menu和main,menu中有链接,target为main。例如:
主页面:

menu.html
page 1
page 2
点击page1链接,在main中显示,如果page1中使用了ajax,那么当点击page2链接时,会出现page2.html在新窗口打开等错误。(好像实际情况是只要在iframe中打开的页面中使用ajax,那么指定到本iframe的链接便无法找到该iframe,也就是说链接不放在另一个iframe中也会出问题,但具体我没有试。)解决方法:使用javascript,代码如下
onclick="parent.document.getElementByIdx_x('main').src=url";//_x_x是博客自动加的,大家在用的时候手工去掉一下。
在Firefox中没有这个问题。

不用ajax提交是可以的?

不推荐frame和ajax混用

其实可以用DIV+CSS+jsp:include等等 替换frame的

google下“iframe ajax 混用”就有结果了
http://blog.sina.com.cn/s/blog_5f66526e0100n3mm.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问