javascript - 在 Chrome 中关闭浏览器时如何检测事件?
问题描述
我在门户网站上的问题中寻找类似的答案,但我无法达到目标。我要做的是在关闭浏览器时使用 AJAX 功能更新表格,这在 Firefox 中有效,在 Chrome 中无效。如何使其与 Chrome 兼容。
<?php
//session_start();
require_once 'Connections/swag.php';
$connection = new swag();
if(!isset($_SESSION["id_user"])){
echo"<script>location.href='index.php';</script>";
} ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/styles.css">
<link rel="shortcut icon" href="imgs/icon/favicon.ico">
<title>PAG</title>
<link href="font-awesome/css/all.min.css" rel="stylesheet">
</head>
<body id="principal">
<script src="js/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
//Detect Browser or Tab Close Events
$(window).on('beforeunload',function(e) {
e = e || window.event;
var localStorageTime = localStorage.getItem('storagetime')
if(localStorageTime!=null && localStorageTime!=undefined){
var currentTime = new Date().getTime(),
timeDifference = currentTime - localStorageTime;
if(timeDifference<25){//Browser Closed
localStorage.removeItem('storagetime');
$.ajax({
type: 'post',
url: 'logout.php',
});
}else{//Browser Tab Closed
localStorage.setItem('storagetime',new Date().getTime());
$.ajax({
type: 'post',
url: 'logout.php',
});
}
}else{
localStorage.setItem('storagetime',new Date().getTime());
}
});
</script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/utiles.js"></script>
</body>
</html>
解决方案
推荐阅读
- node.js - How to do await without using callback?
- r - 根据 R 中的某些条件过滤行
- r - R:选择只有缺失值的组
- c++ - 是否可以在 C++ 中捕获未连接线程终止的异常?
- android - QEMU android aarch64 作为主机。来宾 32 位 x86 或 x86_64 哪个会更快?
- javascript - 多个连续 5 分钟倒计时
- codenameone - 如何通过点击推送通知消息获得特定操作?
- azure - Azure Powershell 脚本强制 FTPS Set-AzWebApp:无法将“System.Object[]”转换为参数所需的“System.String”类型
- terraform - Terraform 状态管理(在 GCP 中部署)
- go - 如何启动子进程,即在我的主进程退出时退出