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 19 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
Jan 13 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
May 27 Javascript
基于JQuery制作可编辑的表格特效
Dec 23 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
JavaScript实现简单的双色球(实例讲解)
Jul 31 Javascript
微信小程序 同步请求授权的详解
Aug 04 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
微信小程序获取用户openid的实现
Dec 24 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
基于jQuery的js分页代码
2010/06/10 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
js实现简单的秒表
2020/01/16 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
Python下简易的单例模式详解
2019/04/08 Python
Python netmiko模块的使用
2020/02/14 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
.net笔试题
2014/03/03 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
历史系自荐信范文
2013/12/24 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
Python3 类型标注支持操作
2021/06/02 Python
python 字典和列表嵌套用法详解
2021/06/29 Python
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript