0

Possible Duplicate:
How we call logout servlet on browser close event

I want my site to automatically logout user when the browser closes. I use onunload in javascript. Now, my problem is it always logout the user everytime the user navigates to other page. What I want is just to logout when the browser closes.

Here's my code:

<script type="text/javascript">

window.onbeforeunload = confirmExit;
window.onunload = logout;

function confirmExit() {
    return "Are you sure you want to leave?";
}

function logout() {
    window.location = '<?php echo WEBSITE_URL ?>?logout=true';
}

</script>

Hope someone will help me ASAP!

4

2 回答 2

1

在您的情况下,最好发送ajax 请求来完成任务,而不是将用户重定向到注销。

也发过去onbeforeunload

或者一个更好的主意是添加一个cookiewith user last activity。并检查每个页面加载是否最后一个活动大于所需的限制服务器重定向到清除会话的登录页面。

于 2012-12-17T09:23:26.177 回答
0

我认为关闭窗口时无法在javascript中检测到。正如您发现的那样,onunload事件没有页面卸载原因的信息:如果用户关闭窗口或导航到不同的页面。

更重要的是,用户可以通过在地址栏中输入 url 导航到不同的页面——在这种情况下,您可能也想“将他注销”。

实现它的最佳方法是在会话中设置超时。如果浏览器崩溃,这将起作用。

于 2012-12-17T09:23:33.943 回答