如何打开然后关闭窗口而不会被阻止作为弹出窗口?

Yuv*_*hen 5 javascript popup

我想指导电子商务网站的客户通过Paypal的网站付款.我希望在新的标签/窗口中完成付款,这样客户就不会丢失他/她所处的网页的当前状态.

为了让Paypal窗口打开而不被阻止,我使用了一个target ="_ blank"的锚点.哪个是完美的工作,除了事实,我不能在Paypal付款完成后关闭它,因为window.close()不适用于没有打开的窗口window.open().

我怎么做它所以它不会被阻止作为一个弹出窗口我以后能用JS关闭它?

T.J*_*der 22

为了让Paypal窗口打开而不被阻止,我使用了一个target ="_ blank"的锚点.

这是一个选项,但只要您window.open在处理程序内为用户生成的事件(如click)调用,就可以打开弹出窗口.所以只需确保window.open从click链接中的处理程序内调用(然后就可以关闭它).现代弹出窗口阻止程序(过去几年中的任何内容)阻止了不是由用户事件触发的弹出窗口,而是允许那些用户事件触发的弹出窗口.

实例 | 来源:

HTML:

<p><a href="#" id="target">Click to open popup</a>; it will close automatically after five seconds.</p>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

(function() {

  document.getElementById("target").onclick = function() {
    var wnd = window.open("http://stackoverflow.com");
    setTimeout(function() {
      wnd.close();
    }, 5000);
    return false;
  };

})();
Run Code Online (Sandbox Code Playgroud)