什么是 onbeforeunload 事件?
onbeforeunload
是一个 Window 对象上的事件,在用户关闭窗口或导航离开当前页面之前触发。通常用于提示用户保存未保存的更改,避免误操作。
如何获得目标 URL?
在 onbeforeunload
事件中,无法直接获取页面将要跳转到的 URL。由于安全原因,浏览器并不允许通过事件对象来获取。
但是,可以通过一些技巧来解决这个问题。
解决方案
- 发送 AJAX 请求
当用户触发 onbeforeunload
事件时,可以发送一个 AJAX 请求,将目标 URL 发送到后端进行记录。后续可以从后端查询目标 URL。
--------------------------------------- --------------- - --- --- - --- ----------------- ---------------- ---------------- ------- ------------------------------------ ------------------------------------- --------------- - ----------------------------------- ---
- 使用 localStorage
在页面跳转之前,将目标 URL 存储在 localStorage 中。在下一个页面加载时,从 localStorage 中读取目标 URL。
--------------------------------------- --------------- - --------------------------------- --------------- --- -- --------- ------------ ----- --- --- --------- - ----------------------------------
- 使用 cookies
与方案二类似,使用 cookies 存储目标 URL。在下一个页面加载时,从 cookies 中读取目标 URL。
--------------------------------------- --------------- - --------------- - ------------ - ---------------------------------- --- -- --------- ------ ----- --- --- --------- - ---------------------------------------------------------------------------------------------- -------
注意事项
需要注意的是,在 onbeforeunload
事件处理程序中发送 AJAX 请求可能会导致请求失败,因为浏览器可能已经停止了所有网络活动。此外,使用 localStorage 和 cookies 存储数据时,需要考虑存储容量和安全性等问题。
结论
获取 onbeforeunload
事件的目标 URL 可以通过发送 AJAX 请求、使用 localStorage 或 cookies 等技巧来解决。但需要注意安全和容量等问题。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/26195