繁体   English   中英

用户关闭浏览器或访问其他页面时如何执行方法?

[英]How to execute a Method when a User close the Browser or visit another Page?

我使用c#asp.net 4 web.forms。

我有一个页面(称为X),仅在这种情况下需要在X上执行一个方法:

  • 当用户访问另一个URL时,直接在浏览器中输入或单击页面上的另一个链接。
  • 当用户从我的Web应用程序注销时。
  • 用户关闭浏览器时。

目前,我正在尝试Page_Unload Event但是对于MSDN,“从内存中卸载服务器控件时发生”,并且我无法使其按预期工作。

在文档中, 我找不到适合我的页面的事件

有哪些可能的替代解决方案? 感谢您的时间。

这根本不可能。

HTTP要求浏览器首先从服务器请求资源-否则,服务器将无法执行任何操作。 关闭浏览器不会向服务器请求任何内容。

您唯一的选择是使用会话cookie,根据MSDN ,会话cookie在用户结束浏览器会话时将被擦除:

当用户关闭浏览器时,cookie被丢弃。

因此,在每个请求上检查这些内容将使服务器知道用户是否以前已关闭浏览器。

有讨厌的javascript解决方案,但是这些都是非常骇人的技巧。

看看javascript window.OnBeforeUnload处理程序:

如何覆盖OnBeforeUnload对话框并将其替换为自己的对话框?

这样,您可以在用户离开页面之前执行一些JavaScript。

  • 当用户访问另一个URL时,直接在浏览器中输入或单击页面上的另一个链接

您可以做一些客户端脚本。 javascript onbeforeunload事件可能会对您有所帮助。

  • 当用户从我的Web应用程序注销时。

不明白为什么这是一个问题。 这肯定是服务器端事件,不是吗?

  • 用户关闭浏览器时

那是个问题。 停电应该怎么办? 或浏览器崩溃? 要么...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM