打开的窗口关闭后如何在 React 中触发事件

Dog*_*Dog 2 javascript window reactjs

我在 React 中有一个带有 onClick 处理程序的 div,当单击该处理程序时,它会在弹出窗口中实现 window.open,将它们定向到外部 URL。当用户关闭弹出窗口时,我想实现一个 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>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

ibe*_*bex 6

您可以更改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);
  }
Run Code Online (Sandbox Code Playgroud)

参考| 代码笔