javascript - window onbeforeunload事件触发注销

标签 javascript jquery ajax window onbeforeunload

我在 Stack Overflow 上找到了许多答案,这些答案说明了 JavaScript 如何无法检测浏览器何时关闭。在大多数情况下,这是事实,但我发现下面的代码似乎能够检测浏览器关闭。

window.onbeforeunload = function(){
   $.ajax({
     type: "POST",
     url: "logout.php"
  });
}

在完美的世界中,用户要么自己注销,要么空闲足够长的时间自动注销,但情况并非总是如此。

因此,我使用上面的代码在用户关闭浏览器时调用 logout.php 脚本。

这是我的问题:当浏览我的网站时,它似乎总是随机的,调用上面的脚本并且用户当然会注销。

在发生这种情况之前,我可以导航到一页或来回浏览多个页面。有时登录后立即调用,甚至无法进入网站。

我不明白为什么会发生这种情况,尤其是随机的。

编辑

添加 logout.php 脚本:

<?php
  include ('include/sessions.php'); 
  $update = "UPDATE users SET lastlogoutdate = NOW(), currentlyloggedin = 'N' WHERE username = '$username'";
  $updateQuery = mysqli_query($dbc, $update);

  session_destroy();
  header('Location: index.php');
?>

最佳答案

这些陈述可能对您或某些人有帮助

 window.onbeforeunload = function(){
 if(event.clientX <=0 || event.clientY <=0)
 {
 $.ajax({
 type: "POST",
 url: "logout.php"
 });
  }
  }

因此只有当用户单击 [X] 按钮时才会注销

关于javascript - window onbeforeunload事件触发注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930618/

相关文章:

javascript - 如何在另一个 div 内每 X 个 div 添加结束和开始 div 标签?

javascript - Angular js 切换事件无法正常工作

javascript - 如何轻松编写包含 "checked"和 "unchecked"单元格的表格?

Jquery 1.2.6.点击body没有任何效果

javascript - 在父 div 中滚动子 div

javascript - 通过ajax(chrome)在vanilla js中以编程方式触发文件输入点击

javascript - 如何仅在显示其容器时才执行 &lt;script&gt;&lt;/script&gt; 内的代码?

javascript - 在关键事件上重定向网页

javascript - 每次按键都会更改文本字段

javascript - jQuery:在完整函数内访问二进制 AJAX 响应或在回调函数外访问 XHR 对象?