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 相关文章推荐
JavaScript实现的日期控件具体代码
Nov 18 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
js 立即调用的函数表达式如何写
Jan 12 Javascript
javascript和jquery实现用户登录验证
May 04 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
Aug 01 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
vue click.stop阻止点击事件继续传播的方法
Sep 04 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
Apr 25 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
Sep 05 Javascript
javascript canvas实现简易时钟例子
Sep 05 Javascript
微信小程序onShareTimeline()实现分享朋友圈
Jan 07 Javascript
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
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中实现简单的ACL 完结篇
2011/09/07 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
vue引入swiper插件的使用实例
2017/07/19 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
详解JS函数防抖
2020/06/05 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Keras设置以及获取权重的实现
2020/06/19 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
竞选宣传委员演讲稿
2014/05/24 职场文书
道歉的话语大全
2015/05/12 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
vue实现拖拽交换位置
2022/04/07 Vue.js