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 相关文章推荐
经典的带阴影的可拖动的浮动层
Jun 26 Javascript
Javascript 获取字符串字节数的多种方法
Jun 02 Javascript
JavaScript的事件绑定(方便不支持js的时候)
Oct 01 Javascript
JavaScript类属性的访问方式详解
Feb 11 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
May 03 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 Javascript
Vue弹出菜单功能的实现代码
Sep 12 Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
Mar 29 Javascript
使用next.js开发网址缩短服务的方法
Jun 17 Javascript
Nest.js 授权验证的方法示例
Feb 22 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的方法
2015/01/16 PHP
php中执行系统命令的方法
2015/03/21 PHP
php计算一个文件大小的方法
2015/03/30 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
2016/01/05 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
jquery随意添加移除html的实现代码
2011/06/21 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
用友笔试题目
2016/10/25 面试题
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
会计岗位职责范本
2014/03/07 职场文书
求职信内容怎么写
2014/05/26 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers