日期:2014-05-18  浏览次数:20760 次

子窗口访问父窗口的自定义函数
我在mainFrame.html 里定义了一个iframe,iframe的src是 left.html。
mainFrame.html里定义了一个函数createIframe(src),
在left.html里这样:parent.createIframe('1.html');
怎么总调用不成功:说“createIframe方法不存在”。
什么原因?怎么搞?
代码如下:
mainframe.html
<html>
<head>
<title>
mainFrame
</title>
<script language="JavaScript" type="text/javascript">
function createIframe(src){
var body=document.getElementsByName("body");
body.innerHTML+="<div name='mainDiv'><iframe name="main" width="100%" 

height="100%"></iframe></div>"
var iframes=document.getElementsByName("main");
iframes[iframes.length-1].src=src;
var mainDivs=document.getElementsByName("mainDiv");
mainDivs[mainDivs.length-1].top=mainDivs[0].top;
mainDivs[mainDivs.length-1].left=mainDivs[0].left;
return minDivs[minDivs.length-1];

}
</script>
</head>
<body id="body">
<table width="100%" border="0" height="100%">
<tr width="100%" height="40">
<td colspan="3">top
</td>
</tr>
<tr>
<td width="12%"><iframe name="left" src="left.html" width="100%" 

height="100%" ></iframe>
</td>
  <td width="1%" >
1
</td>
  <td width="89%" ><div name="mainDiv"><iframe name="main" 

src="main.html" width="100%" height="100%"></iframe></div>
</td>
</tr>
</table>
</body>

</html>

//////////////////////
left.html
<html>
<head>
<title>
左边菜单
</title>

</head>
<body>
<table width="100%">
<tr>
<td align="right"><div 

onclick="document.body.innerHTML=''">+</div></td>
</tr>
<tr>
<td><div onclick="parent.createIframe('1.html')">1</div> 

</td>
</tr>
<tr>
<td><div onclick="top.createIframe('2.html')">2</div></td>

<tr>
<td><div onclick="top.createIframe('3.html')">3</div></td>
</tr>
<tr>
<td><div onclick="top.createIframe('4.html')">4</div></td>
</tr>
</table>
</body>
</html>


------解决方案--------------------
没仔细看你的代码 我自己写了一下 

main.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
 
<script language="javascript">
function a(url) {
window.open(url);
}
</script>
 </HEAD>

 <BODY>
<iframe src="left.html"/>
 </BODY>
</HTML>


left.html
<