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 相关文章推荐
javascript实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
JS 跳转页面延迟2种方法
Mar 29 Javascript
js中符号转意问题示例探讨
Aug 19 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
Sep 10 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
Aug 01 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
Sep 04 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
Feb 09 Javascript
通过vue写一个瀑布流插件代码实例
Sep 07 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
Feb 25 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
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python format 格式化输出方法
2018/07/16 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
如何给Python代码进行加密
2020/01/10 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
后勤岗位职责
2013/11/26 职场文书
爱我中华演讲稿
2014/05/20 职场文书
地理科学专业自荐信
2014/09/01 职场文书
法定授权委托证明书
2014/09/27 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏