当前位置: 代码迷 >> J2SE >> 关于frame frameset的一个小疑点
  详细解决方案

关于frame frameset的一个小疑点

热度:115   发布时间:2016-04-24 01:54:57.0
关于frame frameset的一个小问题
HTML code
<frameset rows="80,*" cols="*" frameborder="no" border="0" framespacing="0">  <frame src="top.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" />  <frameset rows="*" cols="206,*" framespacing="0" frameborder="no" border="0">    <frame src="left.jsp" name="leftFrame" noresize="noresize" id="leftFrame" />    <frame src="right.jsp" name="mainFrame" noresize="noresize" id="mainFrame" />  </frameset> </frameset>

我在left.jsp中点击一个连接
跳入一个action
取得数据以后

怎么使得right.jsp切换成另外一个页面
并且吧我取得的数据显示上去

------解决方案--------------------

frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent
 window.opener引用的是window.open打开的页面的父页面。 

window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面.
 
可以这样
 window.frames[0].document.getElementById('xx');
 可以这样
 window.frames[0].document.body.innerHTML;
 
frm = window.parent.window.frames['uploadFrame'];
 frmDocument = frm.document;
 frm.sb(3); //sb 是uploadFrame页面里的一个函数
 
对于firefox
 如果你遇到报错:parent.document.frames has no properties
 换为如下代码就可以了,这个代码IE,ff兼容. frm = window.parent.window.frames['uploadFrame'];其实 frames 集合并不是挂在 document 而是挂在 window 对象下.
 
注意这样修改frame里的页面有限制,就是必须是同域下的,否则无法访问
 如果是同一域下,但是子域名不同,那么涉及到的js,html文件都加上一句。
 document.domain = xxx.com [这里填写你的域名]
 
document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
  相关解决方案