我想在用户通过关闭浏览器标签页或按下浏览器后退按钮退出网页时触发一个函数。目前我正在使用“beforeunload”和“unload”事件,但当用户重新加载页面时,download事件也会触发。有没有办法解决这个问题?
if (performance.navigation.type === performance.navigation.TYPE_RELOAD) {
// 当页面是通过刷新加载时,不执行任何操作
} else {
window.addEventListener('beforeunload', function() {
if (!isSubmit) {
sendDownloadEmail();
}
});
// 实际上,在'beforeunload'事件中执行函数即可,因为'unload'事件可能在页面卸载完成后无法保证函数的执行
// 若确实需要在'unload'事件中也执行,可以保留以下代码
window.addEventListener('unload', function() {
if (!isSubmit) {
sendDownloadEmail();
}
});
}