Javascript 打开新标签,并等待它关闭

新手上路,请多包涵

我想在我的网站上使用 javascript 打开一个新的银行支付选项卡,并且不离开主窗口,

当用户从银行付款返回到返回 URL 时,我想从另一个窗口(如果可能的话)检测返回 URL 的回复,或者只是通知主窗口交易已完成,它应该检查数据库更新。

我在几个网站上看到过这种行为,例如 popup->login->popup closes->main window reloads 加载会话,问题是我不知道这个方法叫什么,所以我不知道我是什么关键字寻找。

我真正需要的是这个方法的名称,或者它是如何完成的(作为 javascript 中的某个关键字或其他东西)

提前致谢

原文由 Mohammad AbuShady 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 376
2 个回答

在关闭弹出窗口之前,尝试 opener.someFunction() 在打开它的窗口中调用一个函数。请注意,如果用户关闭了第一个窗口,或者如果用户将其导航到另一个站点,或者如果两个窗口出于任何原因位于不同的域中,这将失败。

原文由 Niet the Dark Absol 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 window.open() 打开一个新页面,然后定期检查窗口是否已关闭。 window.open() 返回对打开窗口的引用,您可以使用 windowHandle.closed 检查它是否已关闭。

 btn.onclick = () => {
  const win = window.open(
      'https://www.stackoverflow.com/',
      'Secure Payment');
  const timer = setInterval(() => {
    if (win.closed) {
      clearInterval(timer);
      alert('"Secure Payment" window closed!');
    }
  }, 500);
}

另请参阅这个 简短的演示

有关 window.open() 和最佳实践的更多信息,请查看 MDN

原文由 gkalpak 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题