控制非模态弹出框(showModelessDialog)唯一且随父页面关闭

网站开发中,常常会遇到需要弹出窗体的情况,一般弹出框有模态和非模态两种,如下:

模态:window.showModalDialog()

非模态:window.showModelessDialog()

另外还有window.open 方法,以及通过div来模拟弹出框效果的形式。

window.open请自行百度,了解不深;div模拟的方式不适用与,弹出框中某些组件与父页面组件不相容的情况,如笔者所在项目,父页面中的jquery与整个网站js框架不相容(当然不是简单的可以通过替换$关键字来解决)。所以笔者选择了window.showModelessDialog()方法。但是使用该方法,会遇到可以打开多个弹出框以及父页面关闭后不同步关闭的问题。解决该问题的关键是,知道window.showModelessDialog()方法会返回打开的页面对象,只需要缓存这个页面对象,再次打开时判定该对象的状态就行。

代码如下:

1 if(!modelessDialog|| modelessDialog.closed){ 2 modelessDialog = window.showModelessDialog(

这样就能防止打开多个弹出框。

而实现子页面随父页面同步关闭功能,只需要在父页面的onUnload中关闭该子页面就行。

代码如下:

 1 //父页面:
 2 <body style="margin: 0 0 0 0; padding: 0 0 0 0; overflow: hidden;" onUnload="modelessDialog_Close();">
 3
 4 //父页面关闭时同时关闭右击查找画面
 5 function modelessDialog_Close(){
 6     if(modelessDialog&&!modelessDialog.closed){
 7         modelessDialog.close();
 8         modelessDialog = null;
 9     }
10 }
时间: 2024-12-27 14:12:27

控制非模态弹出框(showModelessDialog)唯一且随父页面关闭的相关文章

Bootstrap模态弹出框

前面的话 在 Bootstrap 框架中把模态弹出框统一称为 Modal.这种弹出框效果在大多数 Web 网站的交互中都可见.比如点击一个按钮弹出一个框,弹出的框可能是一段文件描述,也可能带有按钮操作,也有可能弹出的是一张图片.本文将详细介绍Bootstrap模态弹出框 结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-content”中,其主要又包括三个部分: ? 

Bootstarp学习(二十三)模态弹出框(Modals)

这一小节我们先来讲解一个"模态弹出框",插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的"modal.js"文件. 样式代码: ? LESS版本:modals.less ? Sass版本:_modals.scss ? 编译后的Bootstrap:对应bootstrap.css文件第5375行-第5496行 在 Bootstrap 框架中把模态弹出框统一称为 Modal.这种弹出框效果在大多数 Web 网站的交互中

BootStrap学习笔记JS插件(一)--模态弹出框

一.弹出框基础 <div class="modal show"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss=&quo

Bootstarp学习(二十四)模态弹出框--模态弹出窗的使用

除了通过data-toggle和data-target来控制模态弹出窗之外,Bootstrap框架针对模态弹出框还提供了其他自定义data-属性,来控制模态弹出窗.比如说:是否有灰色背景modal-backdrop,是否可以按ESC键关闭模态弹出窗.有关于Modal弹出窗自定义属性相关说明如下所示: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content=&qu

模态弹出框

<div class="modal" id="mymodal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-di

Bootstarp学习(二十五)模态弹出框--JavaScript触发时的参数设置

使用JavaScript触发模态弹出窗时,Bootstrap框架提供了一些设置,主要包括属性设置.参数设置和事件设置. 属性设置 模态弹出窗默认支持的自定义属性主要有: 比如你不想让用户按ESC键关闭模态弹出窗,你就可以这样做: $(function(){ $(".btn").click(function(){ $("#mymodal").modal({ keyboard:false }); }); }); 参数设置和事件设置进行介绍. 参数设置: 在Bootstr

jquery封装了一个简洁轻巧的可拖动可自定义样式的纯div+css带遮罩层的仿模态弹出框

最近封装上瘾,想起以前做的一个轻巧的弹出框,是样式和脚本分离的,于是重新封装了一下,把样式标签统一到js里了. 里面还有一些问题,但不影响使用,有兴趣的同学,可以参考完善下,有好的建议,请不吝赐教. var PopDialogDefaultConfig = { hasCover: true, //是否带遮罩层 colorOfCover: "#000", //遮罩层颜色 transparencyOfCover: 80, //遮罩层透明度(alpha值,opacity值通过换算得到) bo

做一个vue模态弹出框如何

运用的知识点包括: 路由的配置 插槽 vue的过渡动画 路由重定向 router/index.js里面配置路由 import Vue from 'vue' import Router from 'vue-router' import Home from '@/components/home' import About from '@/components/about' Vue.use(Router) export default new Router({ mode:'history', rout

data-参数说明(模态弹出窗的使用)

除了通过data-toggle和data-target来控制模态弹出窗之外,Bootstrap框架针对模态弹出框还提供了其他自定义data-属性,来控制模态弹出窗.比如说:是否有灰色背景modal-backdrop,是否可以按ESC键关闭模态弹出窗.有关于Modal弹出窗自定义属性相关说明如下所示: JavaScript触发时的参数设置 $(function(){ $(".btn").click(function(){ $("#mymodal").modal({ b