【发布时间】:2025-12-22 19:05:07
【问题描述】:
我想在用户离开我的网站或关闭浏览器或在地址栏中输入任何其他网址时删除图像。
【问题讨论】:
-
Detect window closed的可能重复
标签: php
我想在用户离开我的网站或关闭浏览器或在地址栏中输入任何其他网址时删除图像。
【问题讨论】:
标签: php
您无法捕捉用户何时选择离开网站。您最好在某处记录他们上次从会话中访问您的网站的时间,并在一段时间后执行某种 cron 工作来清除他们的图像。
【讨论】:
这很难实现。没有正确的方法来检测用户何时离开您的网站。最准确的方法是向您的页面添加一个脚本,该脚本会以较小的间隔定期请求某个 URL。当用户离开时,这个 URL 不再被请求,你意识到用户已经离开了,你可以删除一些东西。
【讨论】:
onunload 和 onbeforeunload 事件不可靠。
好吧,我不是一个优秀的 JavaScript Pro,但我认为可能有一个功能可以检查用户是否离开页面。 (想想这个不时出现的弹出窗口,你会被问到你是否真的想离开这个页面。) 您现在检查此事件(离开页面)是否正在发生,当它发生时,您发送一个 AJAX 请求。您的 PHP 响应删除了您的图像。
就像我说的,不确定 Javascript 中的这个函数是否有效。
【讨论】:
您可以在 onbeforeunload 事件上使用 Javascript,然后在异步设置为关闭的情况下执行 AJAX 请求,因此它会在用户离开之前“阻止”浏览器
您可以使用 jQuery 进行异步 AJAX 调用,如下所示:
window.onbeforeunload = function(){
$.ajax({
url:"your_delete_script.php",
async:false
});
}
或者您可以即时创建一个图像,该图像就像一个信标来执行脚本。
window.onbeforeunload = function(){
var img = new Image();
img.src = "script.php";
}
只需确保您的脚本在该部分得到ignore_user_abort,这样无论用户是否关闭浏览器,它都会独立执行
【讨论】:
onunload 和 onbeforeunload。参见:*.com/questions/3876827/… 和 *.com/questions/1594548/… 例如