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 相关文章推荐
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 Javascript
学习javascript面向对象 理解javascript对象
Jan 04 Javascript
js从外部获取图片的实现方法
Aug 05 Javascript
vue-router:嵌套路由的使用方法
Feb 21 Javascript
node文件批量重命名的方法示例
Oct 23 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
Vue中的组件及路由使用实例代码详解
May 22 Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 Javascript
解决Nuxt使用axios跨域问题
Jul 06 Javascript
简单了解Vue computed属性及watch区别
Jul 10 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异步执行的常用方式详解
2013/06/03 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
一步步教你用Python实现2048小游戏
2017/01/19 Python
Python处理中文标点符号大集合
2018/05/14 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python实现大转盘抽奖效果
2019/01/22 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
交通法规咨询中心工作职责
2013/11/27 职场文书
采购部经理岗位职责
2014/02/10 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
光荣之路观后感
2015/06/12 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书