微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

onbeforeunload 在 Chrome 上的工作方式与在 Firefox 上的工作方式不同我正在寻找任何潜在的替代品

如何解决onbeforeunload 在 Chrome 上的工作方式与在 Firefox 上的工作方式不同我正在寻找任何潜在的替代品

我正在尝试将 onbeforeunload 添加到我的代码中,以便它触发发送到服务器的消息。我遇到了以下问题:

  • 页面刷新时,消息会在使用 Firefox 时发送到服务器。当我在 Google Chrome 上刷新页面时,它不会向服务器发送消息。
  • 当点击我网站上的链接以导航到不同的网站时,只有在使用 Chrome 时服务器才会收到一条消息。单击外部链接时,Firefox 不会发送消息。

我也知道 onbeforeunload 应该在窗口关闭时工作,您进入不同的网站并导航到该网站。还有一些其他情况也会触发该功能。我的网站无法处理上述任何错误以及上述错误

如果有解决办法吗?如果是这样,我该怎么办?我已经环顾四周进行修复,但我只得到了提示用户是否要离开页面的修复,我不想要那样。

此外,我尝试在我的外部链接添加onclick函数调用,但在 Firefox 上没有触发。我猜这是由于 onbeforeunload 被取消之前的时间量。如果是这样,有没有办法解决这个问题?

最后,如果使用 onbeforeunload 无法做到这一点,那么我还有哪些其他选择而不提示用户是否要离开。

提前致谢!

编辑:这里有一些可以使用的代码

https://jsfiddle.net/985drboy/

解决方法

确保您向服务器发送消息的代码是阻塞的而不是异步的。如果 onbeforeunload 在您的消息发送之前返回,您会得到未定义的行为,例如如果页面在发送完成之前被卸载,您的消息可能不会被发送。 unbeforeunload 返回后,浏览器会继续卸载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。