在浏览器窗口关闭或页面刷新时执行代码
通常,当用户关闭浏览器窗口或刷新页面时,需要执行特定操作刷新网页。幸运的是,有两个事件处理程序可以满足此需求: window.onbeforeunload 和 window.onunload。
window.onbeforeunload
onbeforeunload 事件在用户操作时触发尝试离开页面。通常,它用于显示一个确认框,要求用户确认他们的选择,或者如果用户有未保存的数据,则阻止他们离开页面。但是,通过不返回字符串或设置 event.returnValue,您可以阻止浏览器显示消息并以静默方式执行代码。
window.onunload
从浏览器卸载页面时会触发 onunload 事件。它通常用于执行清理任务,例如删除任何延迟事件侦听器或关闭数据库连接。
实现
onbeforeunload 和 onunload 都可以分配给窗口属性或使用 .addEventListener 方法。例子如下:
// window property window.onbeforeunload = function() { // Do something }; // .addEventListener window.addEventListener("beforeunload", function(e) { // Do something });
注意:
对于 iframe,当 iframe 被其父级删除时,onbeforeunload 事件不会触发,但 unload 和 pagehide 事件会触发。但是,Firefox 目前存在一个错误,该错误会阻止在删除 iframe 的情况下触发这些事件,从而导致无法在 Firefox 中删除 iframe 之前立即运行代码。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3