控制非模态弹出框(showModelessDialog)唯一且随父页面关闭
网站开发中,常常会遇到需要弹出窗体的情况,一般弹出框有模态和非模态两种,如下:
模态:window.showModalDialog()
非模态:window.showModelessDialog()
另外还有window.open 方法,以及通过div来模拟弹出框效果的形式。
window.open请自行百度,了解不深;div模拟的方式不适用与,弹出框中某些组件与父页面组件不相容的情况,如笔者所在项目,父页面中的jquery与整个网站js框架不相容(当然不是简单的可以通过替换$关键字来解决)。所以笔者选择了window.showModelessDialog()方法。但是使用该方法,会遇到可以打开多个弹出框以及父页面关闭后不同步关闭的问题。解决该问题的关键是,知道window.showModelessDialog()方法会返回打开的页面对象,只需要缓存这个页面对象,再次打开时判定该对象的状态就行。
代码如下:
if(!modelessDialog|| modelessDialog.closed){ modelessDialog = window.showModelessDialog(
这样就能防止打开多个弹出框。
而实现子页面随父页面同步关闭功能,只需要在父页面的onUnload中关闭该子页面就行。
代码如下:
//父页面:
<body style="margin: 0 0 0 0; padding: 0 0 0 0; overflow: hidden;" onUnload="modelessDialog_Close();"> //父页面关闭时同时关闭右击查找画面
function modelessDialog_Close(){
if(modelessDialog&&!modelessDialog.closed){
modelessDialog.close();
modelessDialog = null;
}
}
控制非模态弹出框(showModelessDialog)唯一且随父页面关闭的更多相关文章
- jeecg 弹出框 点击按钮回调父页面 返回值
		
jeecg 弹出框 点击按钮回调父页面 返回值 <t:base type="jquery"></t:base> <t:base type=" ...
 - Bootstrap模态弹出框
		
前面的话 在 Bootstrap 框架中把模态弹出框统一称为 Modal.这种弹出框效果在大多数 Web 网站的交互中都可见.比如点击一个按钮弹出一个框,弹出的框可能是一段文件描述,也可能带有按钮操作 ...
 - UIPresentationController - iOS自定义模态弹出框
		
参考: https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/Definin ...
 - 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-4 模态弹出框--结构分析
		
模态弹出框--结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-con ...
 - 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-3 模态弹出框
		
模态弹出框(Modals) 这一小节我们先来讲解一个“模态弹出框”,插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的“modal.js”文件. 样 ...
 - bootstrap中的modal 模态弹出框不能放在 form_for里面,一弹出modal会自动submit掉form
		
bootstrap中的modal 模态弹出框不能放在 form_for里面,一弹出modal会自动submit掉form
 - 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-2 动画过渡
		
动画过渡(Transitions) 这一小节我们先来讲“动画过渡(Transitions)”这个插件的使用,源文件:transition.js Bootstrap框架默认给各个组件提供了基本动画的过渡 ...
 - 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-1导入JavaScript插件
		
导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...
 - html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果
		
模态框: html部分: <!-- 按钮 --> <button id="box" onclick="pop_box()">弹出框< ...
 
随机推荐
- XE8 for iOS 状态栏的几种效果
			
XE8 实现 iOS 状态栏的几种效果: 一.状态栏底色: 开一个新工程. 设定 Fill.Color 颜色属性. 设定 Fill.Kind = Solid. 无需修改任何官方源码. 二.隐藏状态栏( ...
 - 通用高性能 Windows Socket 组件 HP-Socket v2.2.2 正式发布
			
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
 - [转]Dcloud App离线本地存储方案
			
原文地址:http://ask.dcloud.net.cn/article/166 HTML5+的离线本地存储有如下多种方案:HTML5标准方案:cookie.localstorage.session ...
 - Entity Framework 笔记(一)
			
Entity Framework概述 EF是一个对象关系映射(ORM)框架,允许开发人员使用特定于域的对象关系型数据,开发人员通常不需要编写大量的数据访问代码.使用EF,开发者可以利用LINQ进行查询 ...
 - jQuery Filterizr 筛选过滤
			
Filterizr 是一款功能强大的筛选过滤插件,它提供了多重筛选过滤方式,配合了css3的动画效果. 在线实例 默认 回调函数 使用方法 <div class="sucaihuo&q ...
 - C#如何在DataGridViewCell中自定义脚本编辑器
			
上一篇博文探讨了如何自定义DataGridViewColumn实现一个TreeViewColumn来在DataGridView控件中显示TreeView控件,其实我们还可以继续发挥想象,自定义其他的列 ...
 - array's filter
			
var arr = [ { id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }, { }, { id: null }, { id: NaN ...
 - iOS 正则 检测是否为手机号
			
- (BOOL)validateMobile:(NSString *)mobileNum { NSString *regex = @"^1[3|5|7|8][0-9]\\d{8}$" ...
 - 内网渗透测试思路-FREEBUF
			
(在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...
 - Autodesk hackathon 技术参考资料
			
Autodesk 首届黑客马拉松(hackathon )将于6月14号在上海举行,在这次活动中,推荐您使用的技术有ReCap 360 photo照片建模技术和Autodesk 360 viewer通用 ...