我在 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/