【问题标题】:logout when the browser close, onunload javascript [duplicate]浏览器关闭时注销,onunload javascript [重复]
【发布时间】:2012-12-04 09:07:54
【问题描述】:

可能重复:
How we call logout servlet on browser close event

我希望我的网站在浏览器关闭时自动注销用户。我在javascript中使用onunload。现在,我的问题是每次用户导航到其他页面时它总是注销用户。我想要的只是在浏览器关闭时注销。

这是我的代码:

<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>

希望有人能尽快帮助我!

【问题讨论】:

标签: javascript


【解决方案1】:

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

也发送到onbeforeunload

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

【讨论】:

  • onbeforeunload 你需要发送一个 sjax 请求,顺便说一句。
  • 完整地说,cookie 不是处理会话生命周期的安全方法,因为它可以被客户端修改。
  • @Anzeo:除非它是由服务器签名的。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2017-01-05
    • 2012-10-05
    • 2020-10-23
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多