js关闭模态窗口刷新父页面或跳转页面


Posted in Javascript onDecember 13, 2012

有两个窗口: A窗口(父),B窗口(模态)

A窗口里有一个DATAGRID,一个按钮。

点击按钮时,弹出B窗口(模态)。在B窗口中添加数据,提交后,要求B窗口自关闭,然后刷新A窗口(父)

<script type="text/javascript"> 
function openSubWin() 
{ 
window.showModalDialog('b.html', 'newwindow', 'height=500, width=400, top=0, left=0, toolbar=no, menubar=yes, scrollbars=yes,resizable=yes,location=no, status=no'); 
window.location.reload(); 
} 
</script>

弹出子窗体b.html , 当关闭子窗体时 触发父页面刷新

最近做物资系统的时候,又涉及到模态窗口的问题了,上次做的时候没遇到这次这么多东西,记下来吧
父窗口 js方法

function openwin(id){ 
var answer=window.showModalDialog("demand.do?method=queryBOM&mdid="+id+"&d="+escape(new Date()),window.self,"dialogWidth:700px;dialogHeight:620px:center:yes"); 
if(answer==1){ 
window.location.href = "demand.do?method=selmd&d="+escape(new Date()); //转到处理页面 
//window.location.reload(); 刷新父窗口 
//winow.location.reload(true); } 
}

加个escape(new Date()) 避免读取缓存,当然也可以在子窗口中,加入
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
子窗口 js 方法:
function reVal(){ 
window.returnValue=1; //父窗口中 answer的值 
window.close(); 
}

打开模态窗口之后,父窗口会一直等待子窗口返回个值,如果是表单提交或是button就执行reVal()方法
返回answer的值,window.returnValue=1 这个地方我测试了 好像只能返回String类型的,数组类型的不好使

在子窗口中使用 window.opener.location.reload(); 不好使,不试用于模态窗口,window.opern() 好使

还有个问题是:在模态窗口里form 提交会弹出新窗口,这个问题简单就在<head>里面加个<base target="_self">
就可以搞定,注:我刚开始是不想通过form提交的,用js window.location.href 跳转到不同的action去处理,发现
<base target="_self"> 就不起作用了,似乎 <base target="_self"> 只是针对form action="" 才起作用,这个地方应该可以用iframe 去实现。

Javascript 相关文章推荐
用jquery来定位
Feb 20 Javascript
javascript parseInt与Number函数的区别
Jan 21 Javascript
JS脚本defer的作用示例介绍
Jan 02 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
移动端滑动插件Swipe教程
Oct 16 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
Jan 16 Javascript
JS实现二维数组横纵列转置的方法
Apr 17 Javascript
微信小程序实现多选功能
Nov 04 Javascript
vue学习笔记之作用域插槽实例分析
Feb 01 Javascript
javscript 数组扁平化的实现
Feb 03 Javascript
解决vue项目中出现Invalid Host header的问题
Nov 17 Javascript
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
HTML复选框和单选框 checkbox和radio事件介绍
Dec 12 #Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 #Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 #Javascript
javascript实现图片切换的幻灯片效果源代码
Dec 12 #Javascript
javascript跑马灯悬停放大效果实现代码
Dec 12 #Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 #Javascript
javascript采用数组实现tab菜单切换效果
Dec 12 #Javascript
You might like
php 常用字符串函数总结
2008/03/15 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
JS原型对象通俗&quot;唱法&quot;
2012/12/27 Javascript
Express.JS使用详解
2014/07/17 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
深入理解NumPy简明教程---数组1
2016/12/17 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
实习生单位鉴定意见
2013/12/04 职场文书
丧事主持词大全
2014/04/02 职场文书
理财学专业自荐书
2014/06/28 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
学生会个人总结范文
2015/02/15 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers