window.opener用法和用途实例介绍


Posted in Javascript onAugust 19, 2013

window.opener,是通过window.open打开子窗体的父窗体的引用。

比如在父窗体parentForm里面,通过window.open("subForm.html"),那么在subform.html中window.opener就代表parentForm。既然在子窗体中能够拿到父窗体的引用,那么就可以在子窗体中设置父窗体的字段值或者调用js方法。
实例:添加人员信息时,其中的机构信息通过子窗体完成输入
父亲窗体,用于添加人员信息。

子窗体完成输入后,机构信息(id、name)自动填充到父窗体的orgId、orgName域
window.opener用法和用途实例介绍 
html代码

<tr> 
<tdclass="tdEditLabel">机构</td> 
<tdclass="tdEditContent" colspan="3"style="width:400px;text-align:left"> 
<input type="hidden"name="orgId" id="orgIdId"> 
<!-- disabled修饰的内容 不提交 --> 
<input type="text"name="orgName" disabled="disabled"id="orgNameId"> 
<input type="button"name="selectOrgButton" value="选择机构" 
onclick="openWin('org.do?select=true','selectorg',800,500,1)"> 
</td> 
</tr>

JS代码
/* 
*打开新窗口(通过window.open()) 
* f:链接地址 
* n:窗口的名称 
* w:窗口的宽度 
* h:窗口的高度 
* s:窗口是否有滚动条,1:有滚动条;0:没有滚动条 
*/ 
functionopenWin(f,n,w,h,s){ 
sb= s == "1" ? "1" : "0"; 
l= (screen.width - w)/2; 
t= (screen.height - h)/2; 
sFeatures= "left="+ l +",top="+ t +",height="+ h+",width="+ w 
+",center=1,scrollbars=" + sb +",status=0,directories=0,channelmode=0"; 
openwin= window.open(f , n , sFeatures ); 
if(!openwin.opener) 
openwin.opener= self; 
openwin.focus(); 
returnopenwin; 
}

子窗体,供选择机构信息。

当选择后(通过单击radio),机构信息(id、name)将填充到父窗体的orgId、orgName域
window.opener用法和用途实例介绍 
html代码

<!--列表数据栏 --> 
<c:iftest="${!empty pm.datas}"> 
<c:forEachitems="${pm.datas }" var="org"> 
<trbgcolor="#EFF3F7" class="TableBody1"onmouseover="this.bgColor = '#DEE7FF';"onmouseout="this.bgColor='#EFF3F7';"> 
<td align="center"vAlign="center"> 
<input type="radio"onclick="selectOrg('${org.id }','${org.name }')"> 
</td> 
<tdalign="center" vAlign="center">${org.id}</td> 
<tdalign="center" vAlign="center"><ahref="org.do?parentId=${org.id }&select=true">${org.name}</a></td> 
<tdalign="center" vAlign="center">${org.sn }</td> 
<tdalign="center" vAlign="center">${org.parent.name}</td> 
</tr> 
</c:forEach> 
</c:if>

JS代码
functionselectOrg(id,name){ 
if(window.opener){ 
window.opener.document.all.orgIdId.value= id; 
window.opener.document.all.orgNameId.value= name; 
window.close(); 
} 
}

选择机构信息后的结果
window.opener用法和用途实例介绍 
完成机构信息(id、name)的输入了,只是id在隐藏域中,看不到而已。
小结
说到对父窗体的引用,除了window.opener,就是window.parent了。window.opener是用于通过window.open方式打开子窗体,而window.parent是用于通过iframe方式打开子窗体。
Javascript 相关文章推荐
学习ExtJS(一) 之基础前提
Oct 07 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
Nov 14 Javascript
JS图片预加载 JS实现图片预加载应用
Dec 03 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
浅谈js中的闭包
Mar 16 Javascript
Javascript连接Access数据库完整实例
Aug 03 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
Sep 23 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
May 11 Javascript
element-ui 限制日期选择的方法(datepicker)
May 16 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
Aug 04 Javascript
JavaScript异步编程:异步数据收集的具体方法
Aug 19 #Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
Aug 19 #Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 #Javascript
时间戳转换为时间 年月日时间的JS函数
Aug 19 #Javascript
详解JavaScript函数绑定
Aug 18 #Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
Aug 18 #Javascript
jQuery焦点图切换特效插件封装实例
Aug 18 #Javascript
You might like
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
Python与shell的3种交互方式介绍
2015/04/11 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
企业办公室岗位职责
2014/03/12 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
财务人员担保书
2014/05/13 职场文书
面试必备的求职信
2014/05/25 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
学生病假条范文
2015/08/17 职场文书
导游词之镜泊湖
2019/12/09 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
原生JS中应该禁止出现的写法
2021/05/05 Javascript
python使用glob检索文件的操作
2021/05/20 Python
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL