JavaScript 刷新或关闭网页时弹窗确认

beforeunload事件在当页面关闭或刷新时调用,事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。

有两种方法绑定事件,三种方法实现弹窗:

  • 通过 window.addEventListenerreturnValue 赋值
window.addEventListener("beforeunload", function (e) {
    (e || window.event).returnValue = '确定离开此页吗?';
    //注意:这里return方法是不起作用的
});
  • 通过 window.onXXXEventreturnValue 赋值
window.onbeforeunload = function(e) {
	(e || window.event).returnValue = '确定离开此页吗?';
}
  • 通过 window.onXXXEvent 直接返回提示信息 (推荐)
window.onbeforeunload = function(e) {
	return '确定离开此页吗?'; 
}

IE Edge 对上述方法的支持最好,IE 会显示出自定义的字符串;而 Chrome 和 Firefox 则只会显示默认的提示对话框。

建议使用 window.onXXXEvent 绑定方法,因为该方法在 Chrome 和 Firefox 中无论是刷新还是关闭都会弹窗;而 window.addEventListener 这种绑定方式在关闭选项卡的时候是不提示的!

需要注意的是:上面的方法生效的前题是,打开该网页后,需要鼠标点击一下网页,让网页获取焦点,然后再关闭!!!打开后不点击页面直接关闭或刷新不会触发该方法

从CSDN的源代码可以看出,它使用的也是 onbeforeunload 方法
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值