Skip to content Skip to sidebar Skip to footer

Javascript Open New Tab, And Wait For It To Close

I want to open a new tab for a bank payment on my website using javascript, and without the main window navigating away, when the user is back from the bank payment to a return URL

Solution 1:

You can open a new page using window.open() and then check periodically to see if the window has been closed. The reference to the opened window is returned by window.open() and you can check if it has been closed using windowHandle.closed.

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

See, also, this short demo.

For more info on window.open() and best practices, take a look at MDN.

Solution 2:

The best approach with data transfer from the child window I found.

Parent code

window.open(url);
awaitnewPromise(resolve =>window.addEventListener('custom', resolve));

Child code

if(window.opener) {
  const customEvent = newCustomEvent('custom', { detail: {} });
  window.opener.dispatchEvent(customEvent);
  window.close();
}

Solution 3:

Before closing the popup, try opener.someFunction() to call a function in the window that opened it. Note that this will fail if the user closed the first window, or if the user navigated it to another site, or if the two windows are on different domains for whatever reason.

Post a Comment for "Javascript Open New Tab, And Wait For It To Close"