zoukankan      html  css  js  c++  java
  • 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;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;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;具体情况视实际情况在获取。

  • 相关阅读:
    【转】C语言实现C++面向对象的封装、继承、多态机制
    【读书笔记】线程栈属性
    实际用户ID,有效用户ID,设置用户ID
    与进程相关的文件结构
    关于printf()与fflush()
    文件描述符与FILE结构体
    【转】pthread_cleanup_push()/pthread_cleanup_pop()的详解
    SQL Server 2008数据库复制实现数据库同步备份(转载)
    Entity Framework快速入门
    C#实现组合键
  • 原文地址:https://www.cnblogs.com/lcngu/p/6254431.html
Copyright © 2011-2022 走看看