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复制对象使用说明
Jun 28 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
Bootstrap实现响应式导航栏效果
Dec 28 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 Javascript
jQuery webuploader分片上传大文件
Nov 07 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 Javascript
JQuery属性操作与循环用法示例
May 15 jQuery
Vue使用lodop实现打印小结
Jul 06 Javascript
如何给element添加一个抽屉组件的方法步骤
Jul 14 Javascript
js实现动态时钟
Mar 12 Javascript
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
详解javascript脚本何时会被执行
Feb 05 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 foreach循环中使用引用的问题
2013/11/06 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python批量提交沙箱问题实例
2014/10/08 Python
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
python中join()方法介绍
2018/10/11 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
python简单贪吃蛇开发
2019/01/28 Python
通过shell+python实现企业微信预警
2019/03/07 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
班级旅游计划书
2014/05/03 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
内勤岗位职责范本
2015/04/13 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL