首页 > 解决方案 > 在 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>

标签: javascriptjquery

解决方案


推荐阅读