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 相关文章推荐
use jscript Create a SQL Server database
Jun 16 Javascript
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
Jul 11 Javascript
你可能不知道的JavaScript的new Function()方法
Apr 17 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
Dec 14 Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 Javascript
js操作table元素实现表格行列新增、删除技巧总结
Nov 18 Javascript
一次记住JavaScript的6个正则表达式方法
Feb 22 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
使用vue 国际化i18n 实现多实现语言切换功能
Oct 11 Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 Javascript
实现一个Vue自定义指令懒加载的方法示例
Jun 04 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 Javascript
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与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
Javascript 对象的解释
2008/11/24 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
Javascript Object.extend
2010/05/18 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
Python冒泡排序注意要点实例详解
2016/09/09 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
傲慢与偏见读书笔记
2015/06/29 职场文书