gpt4 book ai didi

javascript - 如何防止在 chrome 中使用 'onbeforeunload' 事件进行双重确认

转载 作者:行者123 更新时间:2023-11-29 23:45:03 24 4
gpt4 key购买 nike

我想提示人们在离开页面之前进行确认。

我在 componentDidMount 中添加了事件监听器:

 componentDidMount() {
window.addEventListener('beforeunload', this.onUnload)
}

然后我写了我想要发生的事件:

onUnload(e) {
var message = "Random message to trigger the browser's native alert."
e.returnValue = message
return message
}

然后我在构造函数中绑定(bind)事件:

constructor(props) {
super(props)
this.onUnload = this.onUnload.bind(this)
}

最后我在卸载时删除了事件监听器:

componentWillUnmount() {
window.removeEventListener('beforeunload', this.onUnload)
}

似乎一切正常。当我尝试关闭 chrome 中的选项卡时,出现以下提示: enter image description here

问题是,在我选择任一选项后,我还会收到重新加载提示: enter image description here

如何摆脱第二个提示?我究竟做错了什么?

最佳答案

您可以将 window.removeEventListener 移动到 onUnmount 方法以确保它被调用。所以这样的事情应该有效:

onUnload(e) {
window.removeEventListener('beforeunload', this.onUnload)

var message = "Random message to trigger the browser's native alert."
e.returnValue = message
return message
}

关于javascript - 如何防止在 chrome 中使用 'onbeforeunload' 事件进行双重确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44450859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com