javascript在当前窗口关闭前检测窗口是否关闭


Posted in Javascript onSeptember 29, 2014

在当前窗口关闭前,检测当前窗口是否关闭

<pre name="code" class="html"><pre name="code" class="html"><HTML><HEAD> 
<script Language="JavaScript"> 
window.onbeforeunload=function(event){ 
alert("222"); //这里IE9会执行,CHROME不会执行 
// if(event.clientX>document.body.clientWidth && event.clientY<0||event.altKey){ //如果是刷新,则不提示 
RETURN "确定关闭窗口?"; 
// } 
} 
var aa ; 
var intervalVar; 
function showClose(){ 
console.log(" wait and val is :"+aa.closed); 
clearInterval(intervalVar); 
} 
function loadform(){ 
aa=window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no"); 
console.log("check close before op and val is :"+aa.closed); //现在窗口未关闭,结果为false 
aa.close();<span style="white-space:pre"> </span> //调用窗口关闭的方法 
console.log("not in wait and val is :"+aa.closed); //此时aa.close正在调用过程中,结果为false 
intervalVar = setInterval(showClose,100); }; //用循环检测子窗口是否关闭,其实用setTimeout也是可以的,不过值要设得大一些 
function unloadform(){ alert("2!"); } 
</script> 
</HEAD><BODY OnLoad="loadform()" OnUnload="unloadform()"> 
</BODY></HTML>

在ie9中,如果刷新文档的话,unloadform和onbeforeunload都会执行,如果是关闭页面的话只会执行onbeforeunload事件

值得注意的是,onunload在关闭页面时不会运行,估计此函数为浏览器内置事件,不能重新定义

在chrome中,如果刷新文档的话,unloadform和onbeforeunload都会执行,关闭页面的话,只会执行onbeforeunload,值得注意的是有注释的那一行一直不会执行.

如果是window.open打开的子窗口的话,可以通过window.closed属性检测是否关闭

<HTML><HEAD> 
<script Language="JavaScript"> 
var aa ; 
var intervalVar; 
function showClose(){ 
console.log(" wait and val is :"+aa.closed); 
clearInterval(intervalVar); 
} 
function loadform(){ 
aa=window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no"); 
console.log("check close before op and val is :"+aa.closed); //现在窗口未关闭,结果为false 
aa.close(); //调用窗口关闭的方法 
console.log("not in wait and val is :"+aa.closed); //此时aa.close正在调用过程中,结果为false 
intervalVar = setInterval(showClose,100); }; //用循环检测子窗口是否关闭,其实用setTimeout也是可以的,不过值要设得大一些 
function unloadform(){ alert("2!"); } 
</script> 
</HEAD><BODY OnLoad="loadform()" OnUnload="unloadform()"> <a href="test.htm">调用</a> 
</BODY></HTML>

父窗口关闭时会自动将window.open关闭的代码

<HTML><HEAD> 
<script Language="JavaScript"> 
var aa ; 
var intervalVar; 
window.onbeforeunload=function(event){ 
aa.close(); 
return "hello"; 
} 
function loadform(){ 
aa=window.open('test.htm', 'windowName',"width=200,height=200,scrollbars=no"); 
}; 
function unloadform(){ alert("2!"); } 
</script> 
</HEAD><BODY OnLoad="loadform()" OnUnload="unloadform()"> <a href="test.htm">调用</a> 
</BODY></HTML>
Javascript 相关文章推荐
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
Nov 27 Javascript
Js实现手机发送验证码时按钮延迟操作
Jun 20 Javascript
wap图片滚动特效无css3元素纯js脚本编写
Aug 22 Javascript
javascript检测移动设备横竖屏
May 21 Javascript
同步文本框内容JS代码实现
Aug 04 Javascript
vue监听滚动事件实现滚动监听
Apr 11 Javascript
JavaScript队列函数和异步执行详解
Jun 19 Javascript
react系列从零开始_简单谈谈react
Jul 06 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
JS的Ajax与后端交互数据的实例
Aug 08 Javascript
vue-cli 3.x 修改dist路径的方法
Sep 19 Javascript
js+csss实现的一个带复选框的下拉框
Sep 29 #Javascript
js监听鼠标事件控制textarea输入字符串的个数
Sep 29 #Javascript
JavaScript声明变量时为什么要加var关键字
Sep 29 #Javascript
Javascript基础知识(三)BOM,DOM总结
Sep 29 #Javascript
Javascript基础知识(二)事件
Sep 29 #Javascript
Javascript基础知识(一)核心基础语法与事件模型
Sep 29 #Javascript
Javascript表单验证要注意的事项
Sep 29 #Javascript
You might like
附件名前加网站名
2008/03/23 PHP
php数组编码转换示例详解
2014/03/11 PHP
PHP面向对象详解(三)
2015/12/07 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
使用PHP开发留言板功能
2019/11/19 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
JS模板实现方法
2013/04/03 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
three.js 入门案例详解
2018/01/23 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
银行求职信范文
2014/05/26 职场文书
党校学习心得体会范文
2014/09/09 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
2015年中秋节主持词
2015/07/30 职场文书
MongoDB支持的索引类型
2022/04/11 MongoDB