JS 如何检测浏览器窗口是否正要关闭
当浏览器窗口关闭或者刷新时,会触发 beforeunload
事件, 它一般用于提醒用户在关闭网页时可能还有未完成的操作,比如更改的信息未保存。
示例
用户在尝试关闭网页时显示的提示消息:
window.addEventListener('beforeunload', (e) => {
e.preventDefault()
return (e.returnValue = '修改的内容未保存,确定要关闭吗?')
})
代码说明
根据规范,要显示确认对话框,beforeunload
事件的回调函数里需要调用一次 preventDefault()
,尽管不是每个浏览器都需要这样,但还是建议加上。
还要注意,如果用户与网页没有过任何的交互,某些浏览器可能不会触发 beforeunload
事件,这是为了防止某些恶意网页弹出不必要的弹窗。
并且,在 beforeunload
事件中调用 window.alert()
、 window.confirm()
、 window.prompt()
方法可能会失效。
版权声明:[自由转载-注明出处-非商用-非衍生] (知识共享许可协议)