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 相关文章推荐
js获取指定日期前后的日期代码
Aug 20 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
微信小程序链接传参并跳转新页面
Nov 29 Javascript
Vue.js路由组件vue-router使用方法详解
Dec 02 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
Jan 27 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
小试小程序云开发(小结)
Jun 06 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 Javascript
全网小程序接口请求封装实例代码
Nov 06 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
多重?l件?合查?(二)
2006/10/09 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python使用matplotlib绘制热图
2018/11/07 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
医学专业毕业生推荐信
2013/11/14 职场文书
大学生实习证明范本
2014/01/15 职场文书
服装发布会策划方案
2014/05/22 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
使用springMVC所需要的pom配置
2021/09/15 Java/Android
我的收音机情缘
2022/04/05 无线电