`
cynhafa
  • 浏览: 155019 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)

阅读更多

Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定

Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。
  Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而 Onbeforeunload 可以做到。


页面加载时只执行onload
页面关闭时先执行onbeforeunload,最后onunload
页面刷新时先执行onbeforeunload,然后onunload,最后onload。


1、onbeforeunload事件:
  说明:目前三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持。
  用法:
   ·object.onbeforeunload = handler
   ·<element onbeforeunload = “handler” … ></element>
  描述:
   事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler可以设一个返回值作为该对话框的显示文本。


  触发于:
   ·关闭浏览器窗口
   ·通过地址栏或收藏夹前往其他页面的时候
   ·点击返回,前进,刷新,主页其中一个的时候
   ·点击 一个前往其他页面的url连接的时候
   ·调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
   ·当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
   ·重新赋予location.href的值的时候。
   ·通过input type=”submit”按钮提交一个具有指定action的表单的时候。
  可以用在以下元素:
   ·BODY, FRAMESET, window
  平台支持:
   IE4+/Win, Mozilla 1.7a+, Netscape 7.2+, Firefox0.9+
  示例:
复制代码 代码如下:
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
   <title>onbeforeunload测试</title>
   <script>
   function checkLeave(){
    event.returnValue="确定离开当前页面吗?";
   }
   </script>
   </head>
   <body onbeforeunload="checkLeave()">
   </body>
   </html>


2、onunload事件
  用法:
   ·object.onbeforeunload = handler
   ·<element onbeforeunload = "handler"></element>


  描述:
   当用户关闭一个页面时触发 onunload 事件。


  触发于:
   ·关闭浏览器窗口
   ·通过地址栏或收藏夹前往其他页面的时候
   ·点击返回,前进,刷新,主页其中一个的时候
   ·点击 一个前往其他页面的url连接的时候
   ·调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
   ·当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
   ·重新赋予location.href的值的时候。
   ·通过input type=”submit”按钮提交一个具有指定action的表单的时候。
  示例:
复制代码 代码如下:
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
   <title>onunload测试</title>
   <script>
   function checkLeave(){
    alert("欢迎下次再来!");
   }
   </script>
   </head>
   <body onunload="checkLeave()">
   </body>
   </html>

一个判断页面是否真的关闭和刷新的好方法:
复制代码 代码如下:
window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}


这段代码就是判断触发onbeforeunload事件时,鼠标是否点击了关闭按钮,或者按了ALT+F4来关闭网页,如果是,则认为系统是关闭网页,否则在认为系统是刷新网页。
详细出处参考:http://www.jb51.net/article/30640.htm
分享到:
评论

相关推荐

    基于JavaScript判断浏览器到底是关闭还是刷新(超准确)

    //页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面时onunload事件,最后onload事件。 //页面关闭时,先onbeforeunload事件,再onunload事件。 //对于火狐: //页面刷新时,只执行onunload;...

    浅谈javascript中onbeforeunload与onunload事件

    在最近的项目中,需要做到一个时间,就是用户离开...onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。 该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。 对话框默认的提示信息根据不

    判断页面是关闭还是刷新的js代码

    不管页面是关闭还是刷新都会执行onunload事件。如何捕捉到页面关闭呢?   页面加载时只执行onload  页面关闭时只执行onunload  页面刷新时先执行onbeforeunload,然后onunload,最后onload。这样我们可以在...

    javascript Onunload与Onbeforeunload使用小结

    Onunload,onbeforeunload都是在刷新或关闭时调用,可以在[removed]脚本中通过[removed]来指定或者在&lt;body&gt;里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。

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

    两者都是在对页面的关闭或刷新事件作个操作。 不同点: unbeforeunload()事件执行的顺序在onunload()事件之前发生。(因为,unbeforeunload()是在页面刷新之前触发的事件,而onubload()是在页面关闭之后才会触发的...

    分享JavaScript获取网页关闭与取消关闭的事件

    在做Web开发时,我们经常用到页面关闭事件onbeforeunload,可以给用户一个选择放弃关闭的机会,就比如这个博客编辑器。如果用户选择了离开,那么onunload事件自然会触发;但若用户选择了取消,又该如何检测呢? 我们...

    解决手机浏览器点击后退页面刷新问题,兼容苹果 safari浏览器和安卓浏览器

    解决手机浏览器点击后退页面刷新问题,兼容苹果 safari浏览器和安卓浏览器。 js的window.onbeforeunload,onunload,window.addEventListener(‘pagehide‘, () => {}手机浏览器不生效

    JavaScript实现离开页面前提示功能【附jQuery实现方法】

    离开页面前的提示不可以用onunload去做,因为它只是兼容IE,你要兼容Google与FireFox就蛋疼了。 而且这个事件还是关闭之后才会触发的。 取而代之可以用onbeforeunload去实现。 onbeforeunload可以在用户关闭或刷新...

    js实现关闭网页出现是否离开提示

    这里面的实现过程很简单,利用了HTML DOM事件中的onunload和onbeforeunload方法。 unload 事件属性 定义:当用户卸载文档时执行一段 JavaScript,例如: // body&lt;body onunload="goodbye()"&gt; //window...

    IBM WebSphere Portal门户开发笔记01

    21、JS与页面刷新、关闭事件 257 22、SHOWMODALDIALOG和SHOWMODELESSDIALOG及其右下角提示框 257 23、特殊字体样式 258 24、JS确认窗口和输入窗口 259 25、WINDOW.SETTIMEOUT和SETINTERVAL 260 25、WINDOW.OPEN 261 ...

    javascript函数的解释

    11.JS中的字符与字符相连接使用+号. 12.JS中的比较操作符有:==等于,!=不等于,&gt;,&gt;=, 13.JS中声明变量使用:var来进行声明 14.JS中的判断语句结构:if(condition){}else{} 15.JS中的循环结构:for([initial expression];...

Global site tag (gtag.js) - Google Analytics