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 相关文章推荐
jquery调用asp.net 页面后台的实现代码
Apr 27 Javascript
获取当前点击按钮的id用this.id实现
Mar 17 Javascript
Javascript非构造函数的继承
Apr 27 Javascript
简单实现bootstrap选项卡效果
Feb 08 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
layui分页效果实现代码
May 19 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
zTree异步加载展开第一级节点的实现方法
Sep 05 Javascript
React和Vue中监听变量变化的方法
Nov 14 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
Mar 28 Javascript
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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP制作万年历
2015/01/07 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python爬取指定微信公众号文章
2018/12/20 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
python isinstance函数用法详解
2020/02/13 Python
pycharm快捷键汇总
2020/02/14 Python
python判断是空的实例分享
2020/07/06 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
小区门卫管理制度
2014/01/29 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA