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 div 遮罩层封锁整个页面
Jul 10 Javascript
javascript innerHTML使用分析
Dec 03 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
Aug 07 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
Jan 26 Javascript
JavaScript中Cookie操作实例
Jan 09 Javascript
Angularjs制作简单的路由功能demo
Apr 14 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
Dec 16 Javascript
Vue2.0 从零开始_环境搭建操作步骤
Jun 14 Javascript
基于vue实现一个神奇的动态按钮效果
May 15 Javascript
ES6函数实现排它两种写法解析
May 13 Javascript
jquery实现简单每周轮换的日历
Sep 10 jQuery
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设置允许大文件上传示例代码
2014/03/10 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python数据挖掘需要学的内容
2019/06/23 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle