一、需求:控制 beforeunload 的弹出时机。
参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/beforeunload_event
页面加载时,利用 beforeunload 创建页面监听,刷新或者关闭时进行弹窗提示
window.addEventListener("beforeunload", fn);function fn(e){// 全局定义一个变量 window.isCloseHint // 用于控制是否返回弹窗if (window.isCloseHint) {const confirmationMessage = "您确认要关闭所有终端吗?";(e || window.event).returnValue = confirmationMessage; // 兼容 Gecko + IEreturn confirmationMessage; // 兼容 Gecko + Webkit, Safari, Chrome}
}
- 进入某个编辑页面,开始编辑后,
刷新
或关闭
页面时,需要浏览器进行一个弹窗提示,是否需要保存已经编辑的内容。 - 在编辑页面中存在下载文件功能。
文件下载接口是【get】直接打开即可下载。
这里有两种方式、一种是通过创建a
+url
标签进行下载。
另一种是通过window.open(url, '_self 或 _target')
打开进行下载。
下载文件时需要阻止
弹窗弹出。
二、解决办法
全局定义一个变量 window.isCloseHint
用于控制是否返回弹窗
在执行下载任务时,先将 window.isCloseHint
变量置为 true
,
下载完成之后,再将 window.isCloseHint
置为 false
。