当前位置: 首页 > Web前端 > JavaScript

onbeforeunload事件关闭浏览器前的提示弹框

时间:2023-03-26 23:45:03 JavaScript

.wrap123{width:600px;height:400px;}问题描述对于表单填写信息的页面,有时用户在填写完一部分后不小心“离开”了页面。这时候产品说需要再做一次。用户提示,询问用户是否真的想离开页面。针对这个需求,我们把具体的“请假”方法分为两种情况。一种是离开当前路由页面,转到另一个路由页面。这种情况比较容易处理。就是直接判断表单填写的信息是否发生了变化。对,做个弹框问,如果没有找零,就不用了。或者使用beforeRouteLeave钩子进行控制。比如我之前的文章:https://segmentfault.com/a/11...情况2直接关闭浏览器选项卡或者关闭浏览器。这种情况下(比如误操作),那么我们可以使用浏览器自带的onbeforeunload事件来控制onbeforeunload事件。Onbeforeunload有两个兄弟。这里介绍一下onload、onbeforeunload、onunload。我们先来看看浏览器自带的三个比较常见的事件。之后立即执行的操作,很像vue的mountedhook)onbeforeunload(网页卸载前的操作,很像vue的beforeDestroyhook)onunload(网页卸载的操作,很像vue的destroyedhook,和destroyed的区别是onunload如果刷新页面,执行onunload后,会再次重新加载页面,即:DOM树+CSSOM=>render树...这样的操作)onload、onbeforeunload、onunload的执行顺序,注意执行顺序这三个当我们打开页面,看到网页内容的时候,onload其实已经执行过了。当我们关闭页面时,会先触发onb??eforeunload事件的执行。当我们刷新页面的时候,会:onbeforeunload-->onunload-->onbeforeunloadonloadvue.wrap123{width:600px;height:400px;}浏览器效果图当我们刷新或关闭浏览器时,会出现下图效果,看起来几乎一样...注意提示框的样式不能修改,只能修改弹框自带提示框的texte.returnValue不能自定义。之所以这么写是因为:在onbeforeunload函数中应该给Event对象的returnValue属性赋一个描述字符串,并return出来,这样会触发浏览器内置确认离开弹框和MDN官方文档:https://developer.mozilla.org...w3school官方文档:https://www.w3school.com.cn/j...兼容性好,请放心使用^_^