window.opener
window.opener 实际上就是通过window.open打开的窗体的父窗体。
比如在父窗体parentForm里面 通过 window.open("subForm.html"),那么在subform.html中 window.opener
就代表parentForm,可以通过这种方式设置父窗体的值或者调用js方法。
如:1,window.opener.test(); ---调用父窗体中的test()方法
2,如果window.opener存在,设置parentForm中stockBox的值。
if (window.opener && !window.opener.closed) {
window.opener.document.parentForm.stockBox.value = symbol;
}
1>window.opener 的用法
在一般的用法中,只是用来解决关闭窗口时不提示弹出窗口, 而对它更深层的了解一般比较少。其 实 window.opener是指调用window.open方法的窗口。 在工作中主要是用来解决部分提交的。这种跨页操作对工作是非常有帮助的。 如果你在主窗口打开了一个页面,并且希望主窗口刷新就用这个,打开页面的window.opener就相当于 主窗口的window。
主窗口的刷新你可以用 window.opener.location.reload(); 如果你用虚拟的目录:如struts的*.do会提示你重试
你可以改成这样 window.opener.yourformname.submit() 就好了
2〉
在应用中有这样一个情况, 在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口
function closeWin(){
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.close(); }
function window.onbeforeunload(){
if(!hasClosed){
window.opener.location="javascript:reloadPage();";
}
}
上面的代码在关闭B窗口的时候会提示错误,说缺少Object,正确的代码如下:
function closeWin(){
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.opener=null;
window.close();
}
function window.onbeforeunload(){
if(!hasClosed){//如果已经执行了closeWin方法,则不执行本方法
window.opener.location="javascript:reloadPage();";
}
}
reloadPage方法如下:
function reloadPage() {
history.go(0);
document.execCommand("refresh")
document.location = document.location;
document.location.reload(); }
PS:由于需要支持正常关闭和强制关闭窗口时能捕捉到事件,用了全局变量hasClosed
==============================================
补充,在父窗口是frame的时候在刷新父窗口的时候会出现问题:
The page cannot be refreshed without resending the information. 后修改如下: window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href; 不需要执行自带的reload()方法,注意,不要再画蛇添足加上这一句:
window.opener.parent.document.frames.item('mainFrame').location.reload();
======================================================================================== 最后,为了同时支持刷新普通父窗口和frame父窗口,代码如下:
function closeWin() {
hasClosed = true;
}
window.opener的更多相关文章
- js jquery 关闭弹出页面 并刷新父页面(window.opener)
function Closepage() { if (window.opener && !window.opener.closed) { window.parent.opener.lo ...
- window.parent 与 window.opener
window.parent针对iframe,window.opener针对window.open 父页面parent.jsp: <%@ page language="java" ...
- window.opener强大功能
window.opener后面的方法可以调用任意父窗口里面js的方法. eg.query()是父窗口的 function refreshParent(){ window.opener.query( ...
- [转]window.opener用法
window.opener 实际上就是通过window.open打开的窗体的父窗体. 比如在父窗体parentForm里面 通过 window.open("subForm.html" ...
- JavaScript中,window.opener是什么?window.parent和window.opener有啥区别?
来自CSDN的问答: window.opener是什么啊? ++++++++++++++++++++++++++++++++++++++++++++++++++ 弹出本窗体的句柄 比如你想点一个按钮直 ...
- window.opener调用父窗体方法的用法
应用实例: function BindWindowCloss() { $(window).bind('beforeunload', function () { ...
- window.opener用法
[转]window.opener用法 window.opener 实际上就是通过window.open打开的窗体的父窗体. 比如在父窗体parentForm里面 通过 window.open(&quo ...
- JQuery window.opener
$('#Save').click(function () { var parent = $(parent.document.body); $(parent).find('input#add ...
- 关于Extjs使用window.opener报错
项目中使用window.opener 刷新父窗口表格,父窗口表格IE8报错, window.opener.Ext.getCmp('SalesCompanyGridPanel').getStore(). ...
- window.opener方法的使用 js跨域
原文:window.opener方法的使用 js跨域 最近公司网站登陆加入了第三方登陆.可以用QQ直接登陆到我们网站,在login页面A中点QQ登陆时,调用了一个window.open文件打开一个lo ...
随机推荐
- [kuangbin带你飞]专题十一 网络流个人题解(L题留坑)
A - ACM Computer Factory 题目描述:某个工厂可以利用P个部件做一台电脑,有N个加工用的机器,但是每一个机器需要特定的部分才能加工,给你P与N,然后是N行描述机器的最大同时加工数 ...
- [ZJOI2015][bzoj3924] 幻想乡战略游戏 [动态点分治]
唉:-(动态点分治的思想真是复杂...... 先码住,再做几道题再来填坑 PS:接下来的Code因为用了倍增lca所以TLE一部分,但是懒得改成RMQ了...... Code: #include< ...
- php读写文件要加锁
http://www.bubuko.com/infodetail-241753.html
- redis windows安装
下载:https://github.com/MicrosoftArchive/redis/releases 命令行启动:redis-server.exe redis.windows.conf 以服务启 ...
- 提高Java开发效率,Idea必装的几款插件
1.codeMaker 重复代码生成工具 domian和dto两个类基本差不多,这个工具就可以通过一个类快速生成另一个类. 2.gsonFormat json转换成Java类 很多时候根据别人接口给的 ...
- hdu 2189 dp
/* 类似完全背包,容量为n的背包用素数填,求满背包的种数 dp(i,j)表示用不超过i的素数组成的j的种数 dp[i][j]=dp[i-1][j],若i为素数则dp[i][j]+=dp[i][j-i ...
- sql2008百万级数据排除重复信息
--高性能排除重复select userid from table where userid in ( select userid from ( select userid, row_number() ...
- 【BZOJ4504&&Hihocoder1046】K个串(主席树,堆)
题意:一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)询问第k大的和是多少 1 <= n <= 100000, 1 < ...
- 【CF1043C】Smallest Word(构造)
题意:给定一个由a和b构成的字符串,可以选择翻转或不翻转他的每个前缀,翻转记为1不翻转记为0,求能将字符串排序的字典序最小的操作序列 n<=1e3 思路:考虑极长的一段a [t,w] 翻转t-1 ...
- 8个学习.net的博客链接 (以前收藏过更多的,被百度新版搞没了,恨死了)
原文发布时间为:2012-09-18 -- 来源于本人的百度文章 [由搬家工具导入] Simone Chiaretta’s CodeClimber http://www.haacked.com/ ( ...