问题描述
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 所对应的位置,而是弹出了新的窗口,这个问题该怎么解决。。 问题补充:<div class="quote_title">AngelAndAngel 写道</div><div class="quote_div">不用ajax提交是可以的?</div><br />可这里我只能改jsp页面,不能改java类,改怎么做?
解决方案
“IE是个不能以常理揣度的浏览器”。时不时出现的各种问题总是让人烦躁。但由于其庞大的用户群,却又不能舍弃。闲话少说,说正题:如果在同一页面中有两个iframe,NAME分别为menu和main,menu中有链接,target为main。例如:主页面:<iframe src="menu.html" name="menu" id="menu" target="main"></iframe><iframe src="" name="main" id="main"></iframe>menu.html<a href="page1.html" target="main">page 1</a><a href="page2.html" target="main">page 2</a>点击page1链接,在main中显示,如果page1中使用了ajax,那么当点击page2链接时,会出现page2.html在新窗口打开等错误。(好像实际情况是只要在iframe中打开的页面中使用ajax,那么指定到本iframe的链接便无法找到该iframe,也就是说链接不放在另一个iframe中也会出问题,但具体我没有试。)解决方法:使用javascript,代码如下onclick="parent.document.getElementByIdx_x('main').src=url";//_x_x是博客自动加的,大家在用的时候手工去掉一下。在Firefox中没有这个问题。
解决方案二:
google下“iframe ajax 混用”就有结果了http://blog.sina.com.cn/s/blog_5f66526e0100n3mm.html
解决方案三:
其实可以用DIV+CSS+<jsp:include>等等 替换frame的
解决方案四:
不推荐frame和ajax混用
解决方案五:
不用ajax提交是可以的?