JavaScript子窗口调用父窗口变量和函数的方法

  在做一个父窗口开启子窗口并且在子窗口关闭的时候调用父窗口的方法,达到局部刷新的目的。

  父窗口:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns=" http://www.w3.org/1999/xhtml">
 4 <head>
 5   <title>parent</title>
 6   <script type="text/javascript">
 7     var parentPara='parent';
 8     function parentFunction() {
 9       alert(parentPara);
10     }
11   </script>
12 </head>
13 <body>
14   <button onclick="parentFunction()">显示变量值</button>
15   <button onclick="window.open('child.html')">打开新窗口</button>
16 </body>
17 </html>

  子窗口:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns=" http://www.w3.org/1999/xhtml">
 4 <head>
 5   <title>child</title>
 6   <script type="text/javascript">
 7     function modify() {
 8       opener.parentPara='child';
 9     }
10   </script>
11 </head>
12 <body>
13   <button onclick="opener.parentFunction()">调用父页面的方法</button>
14   <button onclick="modify()">更改父页面中变量的值</button> 
15 </body>
16 </html>

  子页面是父页面的一个iframe

  父页面:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns=" http://www.w3.org/1999/xhtml">
 4 <head>
 5   <title>parent</title>
 6   <script type="text/javascript">
 7     function fill() {
 8       //alert(frame1.window.childPara);  //显示frame1内的变量值
 9       var str=document.getElementById('txt1').value; //获得文本框内输入的值
10       frame1.window.div1.innerHTML=str; //将值填入子页面的一个div中
11     }
12   </script>
13 </head>
14 <body>
15   <div style="background-color:yellow;width:300px;height:300px;">
16     父页面
17     <iframe id="frame1" src="child.html" frameborder="0" scrolling="no" width="120px" height="120px"></iframe>
18     <br/><br/><br/><br/>
19     <input id="txt1" type="text"/>
20     <button onclick="fill()">将文本框内值填充入子界面</button>
21   </div>
22 </body>
23 </html>

  子页面:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns=" http://www.w3.org/1999/xhtml">
 4 <head>
 5   <title>child</title>
 6   <script type="text/javascript">
 7     function fun() {
 8       parent.fill();
 9     }
10   </script>
11 </head>
12 <body>
13   <div style="background-color:lightblue;width:100px;height:100px;">
14     <b>子页面</b><br/>
15     <a href="#" onclick="fun()">同父页面按钮</a>
16     <div id="div1" style="color:red;">
17     </div>
18   </div>
19 </body>
20 </html>

  刷新父页面时,其中的iframe也会随之刷新;刷新iframe时,父页面不会刷新。

  另外,如果是在angularJS中的一个模块调用另一个模块的方法:主要思路是获取另一模块的angular和document,然后用angular.element(document.getElementById("aaa"));

其中:var angular = window.opener.angular;var document = window.opener.document;具体情况视实际情况在获取。

转载于:https://www.cnblogs.com/lcngu/p/6254431.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值