问题标签 [browser-close]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2458 浏览

javascript - 当用户关闭浏览器窗口时发送ajax

我的主要目标和实际情况:如果两个用户共享相同的凭据,那么第二个用户无法登录系统,直到第一个用户已经登录,退出系统。

实际上,当用户关闭浏览器窗口时,我想login_flag=0在服务器数据库上进行设置。我用谷歌搜索并想出在之前发送一个 ajax 请求

或者

它工作正常。但在 Chrome 中,它会记录以下消息:

主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请查看http://xhr.spec.whatwg.org/

我再次用谷歌搜索了相同的内容,并了解到在卸载事件中使用 Ajax 令人沮丧,并从此处找到以下详细信息

在此处输入图像描述

简而言之,他们反对使用async:falsewithwindow.unloadwindow.beforeUnload方法的 ajax。如果我async从 Ajax 中删除参数,那么它不会按预期工作。

如果用户关闭浏览器窗口,我想在服务器端进行一些活动,那么正确的方法是什么?

0 投票
0 回答
94 浏览

javascript - 如何在关闭浏览器窗口或选项卡时点击 Web 服务?

我面临一个问题,我需要在关闭选项卡之前点击网络服务。我正在使用这个

我不知道在关闭选项卡时我在哪里点击了 web 服务,它显示了显示在页面上停留并离开页面的提示。所以我实现了如果离开然后点击网络服务的条件,否则它保持不变

0 投票
1 回答
1090 浏览

javascript - 在 Javascript/AngularJS 中检测/防止浏览器关闭或会话存储卸载

如何使用 javascript 或 AngularJS 检测浏览器或选项卡关闭并允许用户通过对话框消息阻止它?

我有一个 AngularJS 应用程序,它将数据保存到会话存储中,以便用户可以刷新页面而不会丢失其状态,并且还可以在不同的选项卡中打开多个单独的应用程序实例,而无需同步数据。

如果用户关闭选项卡或浏览器,那么他们将丢失正在进行的工作,因为会话已卸载。我想检测会话何时被破坏并向用户显示一条消息,通知他们如果他们继续,他们将失去正在进行的工作,并允许他们选择确定以继续关闭浏览器/选项卡或取消以停止阻止它关闭。我只想在浏览器/选项卡关闭时显示消息,而不是在用户点击刷新按钮或导航到新页面时显示消息。

注意1:我需要使用会话存储而不是本地存储,因为不同的选项卡需要是应用程序的隔离实例并且不能共享数据。

注意 2:我尝试了 unload 和 beforeUnload 事件,但这些事件不起作用,因为当单击刷新按钮或用户离开页面时它们也会触发。我只想在会话被销毁之前显示消息,即当标签/浏览器实际关闭时。

注意 3:这是一个供公司内部使用的公司应用程序,我知道所有用户及其用例,所以我不担心弹出消息会惹恼他们。我意识到阻止用户关闭应用程序在公共网站上会是一种糟糕的用户体验,但他是一个非常可控的场景。

0 投票
0 回答
31 浏览

php - 在 PHP 中检测用户断开连接

我知道,由于 HTTP 是无状态协议,因此无法直接检测到。我需要知道的是如何间接实现这一点。

我正在用 PHP 制作一个回合制游戏,其中两个用户在互联网上玩。需要检测任何用户的断开连接,以便服务器可以结束游戏并执行游戏结束过程。

我正在根据会话跟踪用户的 last_activity_time,但不知道如何使用它来检测断开连接。见过一些类似的游戏使用这个,一旦我得到逻辑,我可以自己编写代码。任何帮助将非常感激。

0 投票
2 回答
1120 浏览

django - Django 在浏览器关闭时触发信号 user_logged_out

我正在开发一个为用户提供聊天服务的 django 应用程序。因此,我需要向其他用户显示登录或注销的状态。为此,我使用了django 的信号环境。只要用户使用注销按钮,一切正常。如果他们只是关闭浏览器或选项卡,则无法检测到状态切换为离线。当浏览器或选项卡关闭时,触发 user_logged_out 信号的最佳方法是什么?

0 投票
0 回答
1626 浏览

javascript - 某种方式来检测所有浏览器的关闭选项卡/浏览器?

当我点击页面或表单中的其他链接并且对所有浏览器有效时,有一些方法可以检测来自选项卡/浏览器的关闭事件而不关闭,我在这里测试了“beforeunload”和关于此主题的其他回复并且不起作用,我正在测试在 Firefox 和 Chrome 这不起作用:

当我关闭选项卡或浏览器什么也不做时也是如此;但是是的,当我单击链接时

0 投票
0 回答
205 浏览

angular - 如何仅在单击重新加载时才执行功能,而不是在角度 2+ 中的 beforeunload 事件上取消?

我实现了将刷新/关闭事件的更改保存为:

它工作正常,但保存发生在重新加载/取消单击时。 在此处输入图像描述

有没有办法区分重新加载和取消点击?

这里的例子!在每次页面刷新以及使用浏览器后退按钮向后导航时都会显示上述警告,但同样只对我一次刷新和浏览器关闭事件有效。

我在这里遗漏了一些东西,或者 chrome/firefox 限制了这个 onbeforeunload 事件刷新和关闭?

谢谢。

0 投票
1 回答
203 浏览

javascript - 为什么浏览器刷新和关闭事件检测不适用于 IE 和 Safari

我需要logout function在浏览器窗口关闭时调用。它在 Chrome 中运行良好,在 IE 和 Safari 中无法运行。

我尝试了以下代码:

我尝试了其他一些方法,但没有奏效。请指教。

0 投票
0 回答
579 浏览

reactjs - 与打字稿关闭选项卡/窗口反应

当用户关闭浏览器选项卡或窗口时,我需要一个自定义对话框。我试图编写一个包装我的应用程序的组件。这就是我尝试的方式:

然后我包装了我的应用程序:

页面已加载,但当我关闭窗口/选项卡时没有消息。我试图用字符串消息替换 Dialog(),没有成功。

我在这里尝试了npm 包创意表单,但没有任何成功。

任何人以前都以某种方式服用过这个,即使有人成功了一个页面并且无能为力?!

谢谢

0 投票
1 回答
163 浏览

javascript - 使用 npm live-server 时是否会清除 localStorage?

我目前正在开发一个需要使用 DOM 存储或 localStorage 的基本 JS 应用程序。为了自动保存我的更改,我合并了 npm live-server。

关闭实时服务器后,我注意到 localStorage 被清除了。你能帮我理解这在幕后是怎么发生的吗?