【发布时间】:2009-12-01 06:49:45
【问题描述】:
我想在注销时做一些功能,如果用户直接关闭了他的浏览器,那么同样的功能想要做,我们不能在页面卸载上做,因为我的网站上有超过 100 个页面,因为这将起作用从每个页面重定向
谢谢
【问题讨论】:
-
检测浏览器关闭与asp.net无关。这是客户端的事情。
标签: c# asp.net javascript
我想在注销时做一些功能,如果用户直接关闭了他的浏览器,那么同样的功能想要做,我们不能在页面卸载上做,因为我的网站上有超过 100 个页面,因为这将起作用从每个页面重定向
谢谢
【问题讨论】:
标签: c# asp.net javascript
<script type="text/javascript">
var closing = true;
$(function () {
$("a,input[type=submit]").click(function () { closing = false; });
$(window).unload(function () {
if (closing) {
jQuery.ajax({ url: "http://localhost:49591/Account/LogOff", async: false });
}
});
});
</script>
使用 javascript + jquery 关闭窗口时调用 logout.aspx。在 logout.aspx 页面加载事件中做任何你想做的事情。
上面的 sn-p 必须添加到您的母版页的 html 中。
【讨论】:
您可以有一个用于“注销”案例的按钮。
很遗憾,如果用户关闭浏览器,没有可靠的方法可以得到通知。除了您说过不想要的客户端页面卸载之外,唯一的其他选择是定期基于 Ajax 的轮询;两者都很丑,而且出了名的不可靠。
一般来说,服务器端超时是更好的方法。
【讨论】:
这不就是 global.asax 中的 Session_OnEnd 的用途吗?
浏览器关闭时不会触发此事件。
【讨论】: