首页 > 解决方案 > 如何在打开的窗口关闭后触发 React 中的事件

问题描述

我在 React 中有一个带有 onClick 处理程序的 div,当单击该处理程序时,它会在将它们定向到外部 URL 的弹出窗口中实现 window.open。当用户关闭弹出窗口时,我想实现一个 API 调用。但是,我尝试过的一切都失败了,包括尝试使用事件侦听器。

如何检测 React 中的窗口何时关闭?

我对窗口事件的当前代码如下:

export class App extends Component {

  opener = () => {
    const myWindow = window.open("https://www.espn.com", "MsgWindow", "width=200,height=100");
  }

  render() {  

    return (
      <div onClick={this.opener}>
        Hello World
      </div>
    );
  }
}

标签: javascriptreactjswindow

解决方案


opener您可以按如下方式更改功能:

  opener = () => {
    const myWindow = window.open("https://www.espn.com", "MsgWindow", "width=200,height=100");

    var timer = setInterval(function() { 
        if(myWindow.closed) {
            clearInterval(timer);
            alert('closed');
        }
    }, 1000);
  }

参考| 密码笔


推荐阅读