gpt4 book ai didi

javascript - 检测浏览器的关闭选项卡

转载 作者:行者123 更新时间:2023-11-28 06:08:42 33 4
gpt4 key购买 nike

我目前正在 JavaScript 上使用 window.onbeforeunload 函数来检测浏览器的关闭选项卡。我只希望当用户单击关闭选项卡时运行该函数。但是,当用户从一个页面导航到另一页面(操作结果到操作结果)时,也会运行此函数。我正在 asp.net mvc 4 上编写代码。提前致谢。

window.onbeforeunload = function () {

};

最佳答案

ASP.net MVC 中有一种方法可以做到这一点,但您必须考虑所有场景。

正如你所说onbeforeunload运行导航。因此,如果您能找到一种方法来考虑用户没有导航但他已经不在那里,您就可以实现您的目标。

所以我建议是使用SignalR + onbeforeunload为此,因为无论您以何种方式导航或关闭 SignalR 中的选项卡,用户都将断开连接,并且您将获得 OnDisconnected为此举办的事件。

现在您知道用户已离开页面,但您不知道他是否已导航或关闭了选项卡。在这种情况下,您使用 onbeforeunload如果 onbeforeunload 则将消息发送到服务器事件被触发。现在综合考虑这两个解决方案,你就成功了。

那么会发生什么:在关闭选项卡或窗口中:onbeforeunload被调用,并且您向服务器发送一条消息来说明 connectionId = X 已导航,并且如果短时间后 connectionId在服务器中被传递到OnDisconnected您确定他已关闭该选项卡。

当然,这两个操作发生在不同的线程中,并且它们有点过分,但是如果您真的想在您的网站中获得这种认可,这将是我的方法,因为我不是 100%相信该解决方案是一个很好的解决方案,但它可能是为数不多的解决方案之一!

当然,如果您不想与SignalR一起工作的话也是如此。 , Websocket也是另一种方法,而不是 SignalR但在较旧的浏览器中不起作用 SignalR可以。

关于javascript - 检测浏览器的关闭选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36610528/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com