如何获取 onbeforeunload 事件的目标 URL?

什么是 onbeforeunload 事件?

onbeforeunload 是一个 Window 对象上的事件,在用户关闭窗口或导航离开当前页面之前触发。通常用于提示用户保存未保存的更改,避免误操作。

如何获得目标 URL?

onbeforeunload 事件中,无法直接获取页面将要跳转到的 URL。由于安全原因,浏览器并不允许通过事件对象来获取。

但是,可以通过一些技巧来解决这个问题。

解决方案

  1. 发送 AJAX 请求

当用户触发 onbeforeunload 事件时,可以发送一个 AJAX 请求,将目标 URL 发送到后端进行记录。后续可以从后端查询目标 URL。

--------------------------------------- --------------- -
  --- --- - --- -----------------
  ---------------- ---------------- -------
  ------------------------------------ -------------------------------------
  --------------- - -----------------------------------
---
  1. 使用 localStorage

在页面跳转之前,将目标 URL 存储在 localStorage 中。在下一个页面加载时,从 localStorage 中读取目标 URL。

--------------------------------------- --------------- -
  --------------------------------- ---------------
---

-- --------- ------------ ----- ---
--- --------- - ----------------------------------
  1. 使用 cookies

与方案二类似,使用 cookies 存储目标 URL。在下一个页面加载时,从 cookies 中读取目标 URL。

--------------------------------------- --------------- -
  --------------- - ------------ - ----------------------------------
---

-- --------- ------ ----- ---
--- --------- - ---------------------------------------------------------------------------------------------- -------

注意事项

需要注意的是,在 onbeforeunload 事件处理程序中发送 AJAX 请求可能会导致请求失败,因为浏览器可能已经停止了所有网络活动。此外,使用 localStorage 和 cookies 存储数据时,需要考虑存储容量和安全性等问题。

结论

获取 onbeforeunload 事件的目标 URL 可以通过发送 AJAX 请求、使用 localStorage 或 cookies 等技巧来解决。但需要注意安全和容量等问题。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/26195