在做一些关于会员在线的问题时,往往我们要根据览器是否关闭来判断用户是否下线,然后再从session和application中将此用户移除。
由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况:
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
分享到:
相关推荐
### 判断浏览器是刷新还是关闭窗口 在网页开发过程中,我们常常希望能在用户退出或离开当前页面时执行一些特定的操作,比如保存用户的状态、显示一个警告框等。为此,JavaScript 提供了 `onunload` 事件,它会在...
由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况: 1.真正的关闭浏览器 (a.点击关闭按钮 b.右击任务栏关闭 c.按alt+F4关闭) 2.刷新浏览器。 那如何判断区分这两种动作呢? 一. Javascript代码处理方法...
总结起来,判断浏览器刷新还是关闭涉及到对浏览器生命周期事件的理解和巧妙利用。通过结合`beforeunload`、`unload`和`visibilitychange`事件,我们可以实现这个功能,但要考虑到浏览器的兼容性和未来可能的变化。在...
### 如何用JavaScript判断浏览器是刷新还是关闭 在Web开发中,有时候我们需要了解用户是通过刷新页面还是直接关闭浏览器来离开当前网页。虽然JavaScript本身并没有提供直接的方法来区分这两种行为,但可以通过监听...
在Vue.js应用中,有时我们需要监听窗口的关闭和刷新事件,以便执行某些操作,比如保存用户数据或确认离开页面。本文将详细介绍两种在Vue.js中实现这一目标的方法。 首先,我们来了解一下`window.onbeforeunload`...
首先,JavaScript 提供了一个名为 `beforeunload` 的事件,它可以监听到浏览器窗口即将关闭或刷新的信号。当用户尝试离开页面时,我们可以在事件处理函数中执行所需的操作。以下是一个简单的示例: ```javascript ...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和CefSharp库来创建一个功能丰富的浏览器应用,其中包括Tab分页、文件下载、收藏、刷新、删除以及新窗口等核心功能。CefSharp是一个.NET...
要实现“弹出层不关闭,父页面刷新”的功能,我们需要监听用户的刷新事件。在JavaScript中,可以使用`window.onbeforeunload`或`window.onunload`事件来捕获页面刷新的瞬间。然后,我们需要阻止默认的刷新行为,这...
在这个项目中,开发者创建了一个用户控件来表示浏览器的每个标签页,这个控件可能包含了地址栏、前进/后退按钮、刷新按钮等元素。 2. WebBrowser控件:这是.NET Framework自带的控件,可以嵌入到Windows Forms或WPF...
7. **UI设计**:为了提供良好的用户体验,通常还需要添加其他控件,如地址栏、前进/后退按钮、刷新/停止按钮等。这些可以通过Button、TextBox等控件实现,并通过适当的事件处理程序连接到WebBrowser控件的行为。 8....
- **NewWindow事件**:WebBrowser控件在遇到新窗口链接时会触发NewWindow事件,我们需要捕获这个事件,然后在新的Tab页中打开新窗口,而不是在默认浏览器中打开。 - **Navigating和Navigated事件**:这两个事件...
- **捕获刷新事件**:首先,需要为用户提供一个触发刷新的机制,比如添加一个按钮或菜单项。 - **保存必要状态**:在重新启动应用程序之前,如果需要保留某些状态信息(例如用户设置等),应先进行相应的保存处理。 ...
if (scrollY ) { // 当接近顶部时,让SwipeRefreshLayout捕获滑动事件 swipeRefreshLayout.setEnabled(true); } else { swipeRefreshLayout.setEnabled(false); } } }); ``` 6. **防止空刷新**:有时,当网页...
`onbeforeunload` 和 `onunload` 是JavaScript中两个关键的事件处理函数,用于捕获用户关闭浏览器窗口或离开页面的行为。 首先,让我们深入理解这两个事件: 1. **onbeforeunload事件**: 当用户尝试离开当前页面...
- onbeforeunload:关闭或刷新页面前的事件 - onerror:发生错误时的事件 - onload:文档或图像加载完成事件 - onmove:窗口或框架移动时的事件 - onresize:窗口或框架被重新调整大小时的事件 - onscroll:...
#### 解决方案一:使用JavaScript捕获浏览器关闭事件 一种常见的解决方法是在每个页面中加入一段JavaScript代码,用于监听浏览器关闭事件(`onbeforeunload`)。当检测到用户即将关闭浏览器时,该脚本会自动跳转到...
当用户输入消息并点击发送按钮时,JavaScript会捕获这个事件,使用Ajax调用服务器端的处理程序,将消息发送到服务器。同时,服务器会将接收到的消息存储在数据库或其他持久化存储中,并通过Ajax响应将新消息返回给...
在互联网应用中,为了提供实时的数据交互体验,开发者经常需要实现浏览器与服务器之间的长连接,以便数据能够在无需刷新页面的情况下实时传输。"实现浏览器无刷性长连接的htmlfile实现"是一个技术主题,主要涉及...
在JavaScript中,可以利用`window`对象提供的事件监听器来捕获窗口即将关闭的事件。这个事件通常被称为`beforeunload`或`unload`。当用户尝试刷新页面、关闭窗口或者导航到另一个URL时,这些事件会被触发。下面我们...