在JavaScript中,离开页面的事件主要有两个:beforeunload
和 unload
。
1. beforeunload 事件
beforeunload
事件在窗口或文档被卸载之前触发。这通常发生在用户离开页面(例如刷新、关闭标签页、导航到其他页面)的时候。window.addEventListener('beforeunload', function (e) {
// 取消事件的默认动作
e.preventDefault();
// Chrome 需要设置 returnValue
e.returnValue = '';
});
注意:现代浏览器出于同样的原因(防止滥用)可能会限制或忽略自定义的消息。
2. unload 事件
unload
事件在文档被卸载时触发,这通常意味着页面正在被关闭或者导航到另一个页面。window.addEventListener('unload', function () {
// 执行清理操作
console.log('页面正在卸载...');
});
注意事项:
beforeunload
和 unload
事件中的某些操作可能会受到限制,例如弹出对话框或者发送网络请求。问题解决:
如果你遇到了与这两个事件相关的问题,比如事件没有被触发,或者触发了但是没有执行预期的操作,可以尝试以下方法进行排查和解决:
window
对象上。领取专属 10元无门槛券
手把手带您无忧上云