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 相关文章推荐
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
javascript包装对象实例分析
Mar 27 Javascript
js实现带按钮的上下滚动效果
May 12 Javascript
JavaScript弹出对话框的三种方式
Mar 23 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 Javascript
js实现5秒倒计时重新发送短信功能
Feb 05 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 Javascript
javascript将json格式数组下载为excel表格的方法
Dec 22 Javascript
在vue中使用express-mock搭建mock服务的方法
Nov 07 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
Sep 14 Javascript
在vue中使用回调函数,this调用无效的解决
Aug 11 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 imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
orm获取关联表里的属性值
2016/04/17 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
php源码的使用方法讲解
2019/09/26 PHP
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
建龙钢铁面试总结
2014/04/15 面试题
《悯农》教学反思
2014/04/28 职场文书
党员评议自我评价
2015/03/03 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫