反应-当用户尝试重新加载或关闭窗口/选项卡时如何打开模式?

时间:2018-07-20 03:48:59

标签: javascript reactjs alert onbeforeunload

当用户尝试重新加载页面,访问新URL或关闭浏览器窗口/标签时,我试图触发模式。

此刻,代码已成功触发模式,但还会弹出一个默认警报窗口,我想摆脱它:

Modal appears below the default alert window (using FireFox)

模式出现在默认警报窗口下方(使用FireFox)

代码:

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

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

  onUnload(event) {
    event.preventDefault();
    this.setState({ modalIsOpen: true })
  }

1 个答案:

答案 0 :(得分:0)

可能会有更推荐的方法来完成此操作,但是覆盖alert函数应该可以:

onUnload(event) {
    event.preventDefault();
    const nativeAlert = window.alert
    window.alert = console.log // Temporarily override the alert function
    this.setState({ modalIsOpen: true })
    window.alert = nativeAlert // Restore it to default
}