【发布时间】:2013-07-01 07:21:03
【问题描述】:
我试图强制用户在关闭浏览器之前从系统注销。下面是我只能想出的代码。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(window).bind('beforeunload', function () {
return 'Please LogOut';
});
</script>
我想做类似下面的事情。显示一个确认框,如果用户按下 OK 则进行 ajax 调用。
我尝试了下面的代码,但连确认框都没有出现。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(window).bind('beforeunload', function () {
var x;
var r = confirm("Please LogOut");
if (r == true) {
x = "LogOut";
var url = "/User/logOut/";
$.ajax({
url: url,
data: { UserID: 1},
cache: false,
type: "POST",
success: function (data) {
},
error: function (reponse) {
alert("error : " + reponse);
}
});
}
else {
x = "Stay On Page!";
}
});
</script>
【问题讨论】:
-
您可能无法使用 beforeunload 事件来执行此操作。每个浏览器的行为都不同。 Chrome 会显示您的消息以及“离开此页面”和“留在页面上”选项。如果用户单击“离开此页面”,选项卡/浏览器关闭您的代码将无法获得句柄。您可以做的是在关闭窗口时清除所有会话 cookie
-
为什么要强制用户注销?用户不喜欢被强迫你知道...对于你所面临的任何问题,Asp.net 肯定有比依赖用户退出更好的解决方案。
-
如果浏览器崩溃或者用户结束进程会怎样?
-
@Qantas94Heavy 实际上这是为了跟踪我开发的应用程序的用户活动。客户想要一份关于已登录用户及其注销时间的报告。可能存在不会提交注销时间的情况,但我需要处理大多数情况
标签: javascript jquery asp.net ajax asp.net-mvc