JavaScript子窗口调用父窗口变量和函数的方法
本文实例讲述了JavaScript子窗口调用父窗口变量和函数的方法。分享给大家供大家参考。具体如下:
示例1:子窗口是新打开的窗口
父窗口:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <title>parent</title> <scripttype="text/javascript"> varparentPara='parent'; functionparentFunction(){ alert(parentPara); } </script> </head> <body> <buttononclick="parentFunction()">显示变量值</button> <buttononclick="window.open('child.html')">打开新窗口</button> </body> </html>
子窗口:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <title>child</title> <scripttype="text/javascript"> functionmodify(){ opener.parentPara='child'; } </script> </head> <body> <buttononclick="opener.parentFunction()">调用父页面的方法</button> <buttononclick="modify()">更改父页面中变量的值</button> </body> </html>
只要在变量和函数前面加opener就可以访问指定资源了。
但是当父窗口被关闭时,再如此使用会报一个错:"被调用的对象已与其客户端断开连接。"
示例2:子页面是父页面的一个iframe
父页面:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <title>parent</title> <scripttype="text/javascript"> functionfill(){ //alert(frame1.window.childPara);//显示frame1内的变量值 varstr=document.getElementById('txt1').value;//获得文本框内输入的值 frame1.window.div1.innerHTML=str;//将值填入子页面的一个div中 } </script> </head> <body> <divstyle="background-color:yellow;width:300px;height:300px;"> 父页面 <iframeid="frame1"src="child.html"frameborder="0"scrolling="no"width="120px"height="120px"></iframe> <br/><br/><br/><br/> <inputid="txt1"type="text"/> <buttononclick="fill()">将文本框内值填充入子界面</button> </div> </body> </html>
子页面:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <title>child</title> <scripttype="text/javascript"> functionfun(){ parent.fill(); } </script> </head> <body> <divstyle="background-color:lightblue;width:100px;height:100px;"> <b>子页面</b><br/> <ahref="#"onclick="fun()">同父页面按钮</a> <divid="div1"style="color:red;"> </div> </div> </body> </html>
小发现:刷新父页面时,其中的iframe也会随之刷新;刷新iframe时,父页面不会刷新。
希望本文所述对大家的JavaScript程序设计有所帮助。