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


Posted in Javascript onOctober 09, 2015

本文实例讲述了JavaScript子窗口调用父窗口变量和函数的方法。分享给大家供大家参考。具体如下:

示例1:子窗口是新打开的窗口

父窗口:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<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>

子窗口:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<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

父页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<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="background-color:yellow;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>

子页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
  <title>child</title>
  <script type="text/javascript">
    function fun() {
      parent.fill();
    }
  </script>
</head>
<body>
  <div style="background-color:lightblue;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程序设计有所帮助。

Javascript 相关文章推荐
javascript showModalDialog,open取得父窗口的方法
Mar 10 Javascript
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
Apr 13 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
Aug 14 Javascript
javascript检测是否联网的实现代码
Sep 28 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
微信小程序 页面跳转传递值几种方法详解
Jan 12 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
Jan 23 Javascript
Node.js 异步异常的处理与domain模块解析
May 10 Javascript
vue实现的网易云音乐在线播放和下载功能案例
Feb 18 Javascript
vue循环数组改变点击文字的颜色
Oct 14 Javascript
Threejs实现滴滴官网首页地球动画功能
Jul 13 Javascript
Vue实现点击当前行变色
Dec 14 Vue.js
js中unicode转码方法详解
Oct 09 #Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
Oct 09 #Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 #Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
Oct 09 #Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
Oct 09 #Javascript
jQuery往返城市和日期查询实例讲解
Oct 09 #Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 #Javascript
You might like
php下使用无限生命期Session的方法
2007/03/16 PHP
PHP number_format() 函数定义和用法
2012/06/01 PHP
php实现aes加密类分享
2014/02/16 PHP
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
竞聘副主任科员演讲稿
2014/01/11 职场文书
端午节活动策划方案
2014/03/09 职场文书
分公司负责人任命书
2014/06/04 职场文书
学校运动会广播稿
2014/10/11 职场文书
离婚协议书范文
2015/01/26 职场文书
2016春节慰问信范文
2015/03/25 职场文书
采购内勤岗位职责
2015/04/13 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
详解nodejs内置模块
2021/05/06 NodeJs
zabbix配置nginx监控的实现
2022/05/25 Servers
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android