javascript监听页面刷新和页面关闭事件方法详解


Posted in Javascript onJanuary 09, 2017

在我们的日常生活中,时常遇到这么一种情况,当我们在点击一个链接、关闭页面、表单提交时等情况,会提示我们是否确认该操作等信息。

这里就给大家讲讲javascript的onbeforeunload()和onunload()两个事件。

相同点:

两者都是在对页面的关闭或刷新事件作个操作。

不同点:

  1. unbeforeunload()事件执行的顺序在onunload()事件之前发生。(因为,unbeforeunload()是在页面刷新之前触发的事件,而onubload()是在页面关闭之后才会触发的)。
  2. unbeforeunload()事件可以禁止onunload()事件的触发。
  3. onunload()事件是无法阻止页面关闭的。
  4. 浏览器的兼容

onunload:

IE6,IE7,IE8 中 刷新页面、关闭浏览器之后、页面跳转之后都会执行;

IE9 刷新页面 会执行,页面跳转、关闭浏览器不能执行;

firefox(包括firefox3.6) 关闭标签之后、页面跳转之后、刷新页面之后能执行,但关闭浏览器不能执行;

Safari 刷新页面、页面跳转之后会执行,但关闭浏览器不能执行;

Opera、Chrome 任何情况都不执行。

javascript监听页面刷新和页面关闭事件方法详解

onbeforeunload:

IE、Chrome、Safari 完美支持

Firefox 不支持文字提醒信息

Opera 不支持

IE6,IE7会出现bug

javascript监听页面刷新和页面关闭事件方法详解

示例代码:

onbeforeunload():

方式一:html元素中添加

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body onbeforeunload="return myFunction()">
<p>该实例演示了如何向 body 元素添加 "onbeforeunload" 事件。</p>
<p>关闭当前窗口,按下 F5 或点击以下链接触发 onbeforeunload 事件。</p>
<a href="http://www.qqtimezone.top">博客地址</a>  
<script>
function myFunction() {
 return "自定义内容";
}
</script>
</body>
</html>

方式二:javascript中添加

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p>该实例演示了如何使用 HTML DOM 向 body 元素添加 "onbeforeunload" 事件。</p>
<p>关闭当前窗口,按下 F5 或点击以下链接触发 onbeforeunload 事件。</p>
<a href="http://www.runoob.com">点击调整到菜鸟教程</a>
<script>
window.onbeforeunload = function(event) {
 event.returnValue = "我在这写点东西...";
};
</script>
</body>
</html>

方式三:添加addEventListener()事件(不过此方法IE8以下不支持)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>该实例演示了如何使用 addEventListener() 方法向 body 元素添加 "onbeforeunload" 事件。</p>
<p>关闭当前窗口,按下 F5 或点击以下链接触发 onbeforeunload 事件。</p>
<a href="http://www.qqtimezone.top">跳转地址</a>
<script>
window.addEventListener("beforeunload", function(event) {
 event.returnValue = "我在这写点东西...";
});
</script>
</body>
</html>

onunload():

方式一:html元素中添加

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <script type="text/javascript">
  function fun() {
   // dosomethings
  }
 </script>
</head>
<body onunload="fun()">
</body>
</html>

方式二:javascript添加

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <script type="text/javascript">
 window.onunload = function() {
  // dosomethings
 };
 </script>
</head>
<body>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
js 对象是否存在判断
Jul 15 Javascript
JavaScript DOM事件(笔记)
Apr 08 Javascript
jQuery封装的tab选项卡插件分享
Jun 16 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
js style.display=block显示布局错乱问题的解决方法
Sep 21 Javascript
Angular X中使用ngrx的方法详解(附源码)
Jul 10 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 Javascript
js+css实现扇形导航效果
Aug 18 Javascript
cypress测试本地web应用
Jun 01 Javascript
JS获得多个同name 的input输入框的值的实现方法
Jan 09 #Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
Jan 09 #Javascript
原生Javascript插件开发实践
Jan 09 #Javascript
Angular下H5上传图片的方法(可多张上传)
Jan 09 #Javascript
详解网站中图片日常使用以及优化手法
Jan 09 #Javascript
jQuery实现表格元素动态创建功能
Jan 09 #Javascript
input输入密码变黑点密文的实现方法
Jan 09 #Javascript
You might like
php URL跳转代码 减少外链
2011/06/25 PHP
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
js实现简单的倒计时
2021/01/28 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python实现大文件排序的方法
2015/07/10 Python
Python中time模块和datetime模块的用法示例
2016/02/28 Python
快速入手Python字符编码
2016/08/03 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
体育比赛口号
2014/06/09 职场文书
运动与健康自我评价
2015/03/09 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python