`
friping
  • 浏览: 129636 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

捕获浏览器关闭、刷新事件

    博客分类:
  • js
阅读更多

在做一些关于会员在线的问题时,往往我们要根据览器是否关闭来判断用户是否下线,然后再从sessionapplication中将此用户移除。

由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况:

1.真正的关闭浏览器 (a.点击关闭按钮 b.右击任务栏关闭 c.alt+F4关闭)

2.刷新浏览器。

那如何判断区分这两种动作呢?

 

. Javascript代码处理方法:

 

     function window.onbeforeunload()  

     {       

        //用户点击浏览器右上角关闭按钮或是按alt+F4关闭

        if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)  

        {  

         // alert("点关闭按钮");

               document.getElementById("hiddenForm:hiddenBtn").click();

            // window.event.returnValue="确定要退出本页吗?";  

        }

        //用户点击任务栏,右键关闭。s或是按alt+F4关闭

        else if(event.clientY > document.body.clientHeight || event.altKey)

        {

            // alert("任务栏右击关闭");

               document.getElementById("hiddenForm:hiddenBtn").click();

            // window.event.returnValue="确定要退出本页吗?";  

        }

        //其他情况为刷新  

        else

        {  

            // alert("刷新页面");

        }  

     }

 

其中 event.clientX                             鼠标光标X坐标    

        document.body.clientWidth     窗体工作区宽度  

        event.clientY                              鼠标光标Y坐标  

        event.altKey                               是否按下alt

 

 

. 事件捕捉方法:

 

 

<body scroll="no" onbeforeunload="return CloseEvent();" onunload="UnLoadEvent()" >

</body>

 

<script language="JavaScript" type="text/javascript">

  

    var DispClose = true;

    function CloseEvent()

    {

        if (DispClose)

        {

            return "是否离开当前页面?";

        }

    }

   

    function UnLoadEvent()

    {

        DispClose = false;

        //在这里处理关闭页面前的动作

    }

 

 

在页面卸载之前引发onbeforeunload事件,如果用户选择“是”即确定卸载页面将引发onunload事件,否则返回页面不做任何操作。

 

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaolei2009/archive/2009/10/04/4632412.aspx

分享到:
评论
1 楼 mhfbest 2013-08-15  
感谢楼主分享,但是我在chrome上测试貌似不起作用啊。有没有啥方法可以兼容不同浏览器的

相关推荐

    捕获浏览器关闭、刷新事件不同情况下的处理方法

    由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况: 1.真正的关闭浏览器 (a.点击关闭按钮 b.右击任务栏关闭 c.按alt+F4关闭) 2.刷新浏览器。 那如何判断区分这两种动作呢? 一. Javascript代码处理方法...

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

    e.returnValue = '关闭提示'; } // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+ return '关闭提示'; }; 2、在生命周期钩子中注册监听事件 methods: { beforeunloadHandler (e) { // ... } } 在 mounted

    在线用户列表案例(asp.net)

    一般来说,用户离开系统的方式有三种:主动注销、会话超时、直接关闭浏览器,对于前两种,我们很容易便可将该用户从在线列表中清除,关键是第三种(很多用户都是直接关闭窗口的~~郁闷ing),程序无法捕获窗口关闭的...

    JavaScript经典实例

     8.9针对后退按钮、页面刷新来保持状态  第9章表单元素和验证  9.0简介  9.1访问表单文本输入值  9.2动态关闭或打开表单元素  9.3根据一个事件从表单元素获取信息  9.4当点击单选按钮的时候执行一个动作  ...

    auto_mark_chromium:自动添加指定网页的书签

    在标签内跳转到其它网址时,此时无法捕获标签关闭事件而无法保存网址 当该浏览器只有一个标签时,关闭标签会导致浏览器退出而无暇保存网址 在安装扩展前,所有已打开的网页都不能被记录,所以安装完本扩展后,需刷新...

    蓝极光淘宝商家管理系统升级版v3_0802.zip

    用户在重复选择网银或开启了网银付款页自动刷新功能时,都将更新帐号信息,即触发帐号更新提醒,并非误报,更新提醒音采用Flash方式播放,以解决部分网络空间不支持wav格式的问题,请确保浏览器正确安装Flash插件 ...

    Plex SDE Extension-crx插件

    它的主要目的是捕获F5键,以避免由于浏览器刷新而丢失工作。 F5将立即执行查询。 所有快捷键:F4-查看存储过程F5-执行F6-保存存储过程ctrl + q-关闭SDE选项卡任何键-隐藏消息标语0.4-隐藏具有任何键的消息标0.3-样式...

    JavaScript笔记

    (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是由事件引发 解释执行:先读...

    scienwebbing:科学地学习

    ####待办事项列表在固定时间内阻止某些附加站点(硬逻辑代码,使用主机文件进行操作) UI(仅在 posix 系统中首次出现) 从文件导入站点列表捕获数据包而不是主机文件监控浏览器。 在尝试访问阻止站点时添加时间...

    Java开发技术大全 电子版

    14.4.6响应窗口关闭事件处理示例454 14.4.7事件监听器接口和适配器类456 14.4.8作为参数的事件类456 14.4.9处理多个事件的例子463 14.5Swing组件的特性467 14.5.1Swing组件的优势467 14.5.2Swing组件的体系...

    特雷洛的Tracey - Bug Cop。「Tracey - Bug Cop for Trello」-crx插件

    要登录,请转到其他任何网站-刷新并登录***版本0.0.9-删除了烦人的Object:Object通知问题版本0.0.8-对该版本进行了很大的更新! -添加了设置屏幕-添加了视网膜徽标-添加了您在弹出窗口中使用的面板(限制将任务添加...

    DataHug for Gmail「Datahug for Gmail」-crx插件

    - 编辑/更新交易信息,以反映更改关闭日期,阶段,金额和下一步。 - 遵循链接查看Salesforce中的机会 安装概述 1.前往Chrome Store中的Sales Closer列表(您已经在这里:) 2.点击添加到Chrome 3.加载/刷新Gmail 4....

    CuteFTP9简易汉化版

    除了上面这些,一种上传软件可以锁定一个本地文件夹到活动远程窗格中,索引配置文件夹(目录)选项,配置缓存文件夹,自动刷新文件夹转移和导航事件后,设置公差服务器设置问题,递归删除整个文件夹,删除到回收站,等等。...

    《程序天下:JavaScript实例自学手册》光盘源码

    20.9 检测浏览器浏览过的站点数 20.10 IE文件菜单中的打开命令 20.11 打开Internet选项对话框 20.12 打开Windows系统的画板 20.13 弹出保存对话框 20.14 进入页面弹出收藏夹 20.15 执行客户端的可执行程序 20.16 ...

    程序天下:JavaScript实例自学手册

    20.9 检测浏览器浏览过的站点数 20.10 IE文件菜单中的打开命令 20.11 打开Internet选项对话框 20.12 打开Windows系统的画板 20.13 弹出保存对话框 20.14 进入页面弹出收藏夹 20.15 执行客户端的可执行程序 20.16 ...

    Android 开发技巧

    9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37、通过ANDROID 客户端上传数据到服务器 251 9.38、文件下载类 255 9.39、下载文件的进度条提示 263 9.40...

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

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    Android开发资料合集-World版!

    9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37、通过ANDROID 客户端上传数据到服务器 251 9.38、文件下载类 255 9.39、下载文件的进度条提示 263 9.40...

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

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

Global site tag (gtag.js) - Google Analytics