JavaScript子窗口调用父窗口变量和函数的方法
本文实例讲述了JavaScript子窗口调用父窗口变量和函数的方法。分享给大家供大家参考。具体如下:
示例1:子窗口是新打开的窗口
父窗口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head> <title>parent</title> <script type= "text/javascript" > var parentPara= 'parent' ; function parentFunction() { alert(parentPara); } </script> </head> <body> <button onclick= "parentFunction()" >显示变量值</button> <button onclick= "window.open('child.html')" >打开新窗口</button> </body> </html> |
子窗口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head> <title>child</title> <script type= "text/javascript" > function modify() { opener.parentPara= 'child' ; } </script> </head> <body> <button onclick= "opener.parentFunction()" >调用父页面的方法</button> <button onclick= "modify()" >更改父页面中变量的值</button> </body> </html> |
只要在变量和函数前面加opener就可以访问指定资源了。
但是当父窗口被关闭时,再如此使用会报一个错:"被调用的对象已与其客户端断开连接。"
示例2:子页面是父页面的一个iframe
父页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head> <title>parent</title> <script type= "text/javascript" > function fill() { //alert(frame1.window.childPara); //显示frame1内的变量值 var str=document.getElementById( 'txt1' ).value; //获得文本框内输入的值 frame1.window.div1.innerHTML=str; //将值填入子页面的一个div中 } </script> </head> <body> <div style= "width:300px;height:300px;" > 父页面 <iframe id= "frame1" src= "child.html" frameborder= "0" scrolling= "no" width= "120px" height= "120px" ></iframe> <br/><br/><br/><br/> <input id= "txt1" type= "text" /> <button onclick= "fill()" >将文本框内值填充入子界面</button> </div> </body> </html> |
子页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head> <title>child</title> <script type= "text/javascript" > function fun() { parent.fill(); } </script> </head> <body> <div style= "width:100px;height:100px;" > <b>子页面</b><br/> <a href= "#" onclick= "fun()" >同父页面按钮</a> <div id= "div1" style= "color:red;" > </div> </div> </body> </html> |
小发现:刷新父页面时,其中的iframe也会随之刷新;刷新iframe时,父页面不会刷新。
希望本文所述对大家的JavaScript程序设计有所帮助。