实例
在即将离开当前页面(刷新或关闭)时执行 JavaScript :
<body onbeforeunload="return myFunction()">
定义和用法
onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。
该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。
对话框默认的提示信息根据不同的浏览器有所不同,标准的信息类似 “确定要离开此页吗?”。该信息不能删除。
但你可以自定义一些消息提示与标准信息一起显示在对话框。
注意 : 在 Firefox 浏览器中,只显示默认提醒信息(不显示自定义信息)
注意 : 如果你没有在 元素上指定 onbeforeunload 事件,则需要在 window 对象上添加事件,并使用 returnValue 属性创建自定义信息(查看以下语法实例)。
使用
JS方法
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<p>测试离开页面提示</p>
</body>
<script type="text/javascript">
window.onbeforeunload=function(){
return "浩哥你确定要离开吗";
}
</script>
</html>
根据浏览器的不同浩哥可能不会出现。
React中
一般在项目中直接使用window或者body会导致整个项目的页面的刷新关闭事件都被拦截。
想在某个页面中使用这个拦截的大体思路是在进入这个页面的时候挂载该事件,跳转页面的时候将挂载的事件取消。
componentDidMount() {
window.onbeforeunload = function(e){
e = e || window.event;
if(e){
e.returnValue = '浩哥的关闭提示'
}
return '浩哥的关闭提示'
}
}
componentWillUnmount() {
window.onbeforeunload = undefined
// 组件卸载时一般清理一些状态
}
浩哥也不一定提示