关于模态窗口 关闭当前窗口刷新上一个窗口

模态窗口与非模态窗口:JavaScript实现与问题解决
本文介绍了模态与非模态对话框的区别,并通过JavaScript展示了如何创建这两种对话框。在实际应用中,作者遇到一个问题:从页面A用模态窗口打开页面B,操作后需关闭B并刷新A。解决方案包括使用window.opener(在IE8中不适用)和window.parent。在刷新页面时,发现window.location.reload()在ASP.NET中可能导致问题,而使用window.location.href=window.location.href则可以避免。

对话框的类型 :模态类型(modal)与非模态类型(modeless)。

模态类型 定义:所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框。()

模态类型 定义:非模态对话框则不会强制此种特性,用户可以在当前对话框以及其他窗口间进行切换。本文介绍如何使用JavaScript语言来创建这两种类型的对话框、控制其大小和位

简单地说:模态窗口就是一个弹出窗口,你如果不把它关了,就不能点击其他地方.同理还有非模态窗口,那种就是即使你不把他关了,也不会影响其他操作



说一下我今天碰到的问题。

  我需要在一个页面A,用模态窗口打开一个新的页面B。在页面B中进行数据操作,操作完成关闭页面B,关闭页面B的同时要刷新页面A。

 解决方案是:

openDialogResize(url,800,600); //打开一个自定义的模态窗口
loadData();  //A页 再打开模态窗口后添加一个 刷新页面的操作;



其他人的经验

 1、window.opener

  window.opener得到当前窗口的父窗口,还可以说是打开当前窗口的窗口。这里有一点要说明,用window.open打开这个属性在IE8和FireFox3中都是没有问题的。但是用window.showModalDialog打开一个新窗口,在IE7和IE8中是不支持这个属性的。这个window.opener得到的相当于父窗口的window对象。

  2、window.parent

  window.parent是用<a href="">打开的页面支持这个属性。还有就是在iframe中也支持这个属性。

  还有上面A.html页面中代码刷新页面用window.location.href=window.location.href;而不用window.location.reload();。我在网上搜了一下,没有搜到好的答案,只有一句话"刷新出现错误“新整理网页,必须重新传送资讯”说句实话我不是很明白这句话的意思。但我感觉这可能和Http协议有关系。window.location.reload()相当于按了F5,或者点了刷新按钮,而window.location.href=window.location.href则相当于重定向了一次页面。我想这两行代码在ASP.NET是可以验证的,用Page.IsPostBack属性。如果用window.location.reload(),Page.IsPostBack是true,而用window.location.href=window.location.href则Page.IsPostBack是false。在这里,用window.location.reload()是不刷新的。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值