`

js 监听窗口关闭和刷新

阅读更多
Onunload与Onbeforeunload
Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。

    Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而 Onbeforeunload 可以做到。曾经做一个考试系统,涉及到防止用户半途退出考试(有意或者无意),代码如下:
  1. <script type="text/javascript">  
  2. <!--    
  3.     window.onbeforeunload = onbeforeunload_handler;  
  4.     window.onunload = onunload_handler;  
  5.     function onbeforeunload_handler(){  
  6.         var warning="确认退出?";          
  7.         return warning;  
  8.     }  
  9.       
  10.     function onunload_handler(){  
  11.         var warning="谢谢光临";  
  12.         alert(warning);  
  13.     }  
  14. // -->  
  15. </script>  
  16.    
  1. 这段代码在FF和IE上都能正确执行.再点击关闭按钮时首先触发obbeforeunload事件,点击否定时不执行onload事件.  
  1. 通常应用在 注销session等等登陆信息 等方面....  
  1. 这里一并推荐一个ActionScript3的好教程: <a href="http://gskinner.com/talks/as3workshop/">http://gskinner.com/talks/as3workshop/</a>  
 
运用onunload事件判断浏览器是刷新还是关闭窗口
 
function CloseOpen(event) { 
if(event.clientX<=0 && event.clientY<0) { 
alert("关闭"); 

else 

alert("刷新或离开"); 

 
  1. window.onbeforeunload = function() //author: meizz   
  2.        {   
  3.               var n = window.event.screenX - window.screenLeft;   
  4.               var b = n > document.documentElement.scrollWidth-20;   
  5.               if(b && window.event.clientY < 0 || window.event.altKey)   
  6.               {   
  7.                      alert("是关闭而非刷新");   
  8.                      window.event.returnValue = ""; //这里可以放置你想做的操作代码   
  9.               }   
  10.        }  
分享到:
评论

相关推荐

    JS针对浏览器窗口关闭事件的监听方法集锦

    本文实例总结了JS针对浏览器窗口关闭事件的监听方法。分享给大家供大家参考,具体如下: 方式一:(适用于IE浏览器,而且刷新不提示,只在点击浏览器关闭按钮的时候提示) [removed] [removed]=onclose; function ...

    js监听页面的刷新与关闭

    使用javascript实现监听页面的刷新与关闭,可在用户刷新或关闭窗口时执行相关操作。

    vuejs中监听窗口关闭和窗口刷新事件的方法

    今天小编就为大家分享一篇vuejs中监听窗口关闭和窗口刷新事件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    js 冒泡事件与事件监听使用分析

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 查看运行效果 事件监听 事件监听准确一点讲可以说是js引擎对用户鼠标、键盘、窗口事件等动作的监视进行的操作,也就是针对用户相应的操作进行附加事件,常用的类似 ...

    Firefox中beforeunload事件的实现缺陷浅析

    beforeunload 指在页面卸载前提供的最后一次JS执行的机会

    react-beforeunload:React组件和挂钩,侦听beforeunload窗口事件

    卸载前ReactReact组件和钩子,侦听窗口事件。用法useBeforeunload挂钩(推荐) useBeforeunload ( handler ) ;参数handler函数来调用BeforeUnloadEvent时beforeunload事件。例子import { useBeforeunload } from '...

    无刷新上传文件并返回自定义值

    今天开发过程中遇到了这样一个问题:需要将Excel上传至服务器进行解析,但是在...iframe之前设置为隐藏,所以页面不会有变化,然后我们需要监听iframe内容的变化,然后将内容传入主窗口中的JS方法进行下一步的自定义处

    c认证web进阶dom与bom

    ID和CLASS的区别 DOM上 1、DOM结构及节点 2、常用节点获取方法和属性 3、常用的节点属性获取方式 关于图片复制到csdn编译器不识别问题 DOM下 1、DOM修改 2、DOM添加 3、DOM删除 案例 DOM控制css样式 1、...

    IBM WebSphere Portal门户开发笔记01

    24、JS确认窗口和输入窗口 259 25、WINDOW.SETTIMEOUT和SETINTERVAL 260 25、WINDOW.OPEN 261 26、检查浏览器是否支持COOKIE 262 27、COOKIE操作 262 28、JS操作时间大全 263 29、JS MATH函数操作 274 30、JS设置...

    flex3的cookbook书籍完整版dpf(包含目录)

    在State Changes事件中添加和删除事件监听器 11.11节. 添加视图States到Flash组件 11.12节. 处理StateChange 事件 11.13节. 动态生成States和Transitions 11.14节. 创建State的自定义动作(action) 第十二章. 特效...

    课程设计基于Vue+Echart框智实现的慧城市大屏可视化系统源码+项目说明(含后台管理系统源码).tar

    在监听窗口小大的模块,使用了防抖函数来控制更新频率,节约浏览器性能。 项目配置了默认的 ECharts 图表样式,文件地址:`common/echart/theme.json`。 封装的渲染图表组件支持传入以下参数,可根据业务需求自行...

    scrat-pagelet-demo:scrat seo 模式 http 演示

    scrat后端渲染Webapp模式示例...pagelet-demoscrat release -cwL启动本地调试服务器注意,这里最好新开一个命令窗口,不要关闭上一步中的命令,它在监听文件修改,并帮助你自动刷新浏览器!scrat server start访问页面

    超实用的jQuery代码段

    《超实用的jQuery代码段》从jQuery框架的使用原理与应用场景出发,对最实用的jQuery代码段进行了全方位的介绍和演示。全书分为11章,包含网页效果、DOM元素与属性、HTML事件、CSS样式、用户输入自动完成、拖放、图形...

    HTML5-Canvas-based-Compass-and-mouse-tracker:这是一个基于地图和指南针的概念,使用 HTML5 Canvas、CSS3 和 Javascipt 创建,并带有修改的 jQueryRotate 库

    我们在 mainCanvas 上添加了鼠标位置 mousemove 监听器来检测指针的位置。 后来我们通过 jQueryRotate 库在各自的方向移动了指针。 由创建 函数onResize有助于根据窗口更改画布的尺寸。 每个画布对象上的绘制功能...

    java源码包---java 源码 大量 实例

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包2

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包3

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包4

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    JAVA上百实例源码以及开源项目源代码

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

Global site tag (gtag.js) - Google Analytics