用户关闭浏览器的事件扑捉就这么简单!!!!

hguygg 2006-09-21 09:28:00
之前有个同志写了关于这方面的文章,他是在body里面用onbeforeunload事件,如果大家用试试,就知道有什么问题了。其实onbeforeunload事件理论上是可行的,但实际系统中,会出很多问题。因为它是在操作页面变化后就会触发的,比如在操作页面基础上弹出一个窗口,都会触发。
废话少说,进入正题:
其实这个问题很简单,就用body里的onunload来扑捉浏览器右上角关闭按钮。下面是我举个例子:
系统主页面main.aspx的相关代码:
<SCRIPT language="javascript">
function unload()
{
window.open("CloseWin.aspx","close");
}
</script>
<body leftMargin="0" topMargin="0" onunload="unload()">
</body>

CloseWin.aspx页面只需在CloseWin.aspx.cs下面写如下代码:
private void Page_Load(object sender, System.EventArgs e)
{
if(CurrentlyUser!=null)
onlineMrg.DeleteOnLineUserByUser(CurrentlyUser.ID);
Response.Write("<script language=javascript>window.close();</script>");
}
说明:CurrentlyUser是当前用户,onlineMrg.DeleteOnLineUserByUser(CurrentlyUser.ID)这句是删除当前用户信息。如果你只是想删除Session,就直接在里面写Session.Abandon(); Session.Clear();就可以了,我已测试N次了,是可行的,不会有onbeforeunload的问题。小弟学asp.net半年,也不知道该文章是不是很幼稚,不过希望能帮到需要的朋友。:)
...全文
146 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcbsy 2006-09-21
  • 打赏
  • 举报
回复
mark
myminimouse 2006-09-21
  • 打赏
  • 举报
回复
你可以仔细看看那篇的讨论
hujunhua 2006-09-21
  • 打赏
  • 举报
回复
你仔细看过 那篇文章下面楼主的修改没有?
daijingang 2006-09-21
  • 打赏
  • 举报
回复
楼主好人啊~~~
一点晴 2006-09-21
  • 打赏
  • 举报
回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧