.onbeforeunload有时返回,有时不返回(弹出窗口,IE11)

时间:2018-05-09 08:06:55

标签: javascript internet-explorer-11 onbeforeunload

我正在处理这段代码。基本上,只要弹出窗口关闭,它就会返回一个console.log。使用.onbeforeunload适用于除IE11之外的所有浏览器。使用IE11它有时会工作,有时根本不会调用。我没有做任何不同的事情,只需打开弹出窗口然后关闭它。我不知道如何解决这个问题,因为它很有气质。我已粘贴下面的功能代码。感谢

function open(config, refID, cb) {
    var w = window.open(
      config.baseURL,
      "_blank",
      "toolbar,scrollbars,resizable,top=250,left=250,width=599,height=500"
    );

    w.onbeforeunload = function () {
      if (cb) cb()
    };
  }

1 个答案:

答案 0 :(得分:0)

我真的不知道你是如何设法使你的代码工作的。它根本不会。问题是你不能像你正在尝试那样添加一个事件。您需要使用addEventListener。我制作了一个简单的片段。 100%的工作时间。没有气质代码,如果这样的话甚至存在:)

function open(url, callback) {

  // Open the window
  var win = window.open(url, "popup", "toolbar=1, scrollbars=1, resizable=1, top=250, left=250, width=500, height=500");

  // Add the event listener
  win.addEventListener('beforeunload', function () {
    if(callback) callback();
  }, false);

}

// Opens the window, with the url and callback as arguments
open('whatever.html', function() { 
  console.log('hello!');
});

请记住,您需要在已打开的窗口网址上拥有权限,才能向其添加事件监听器。

希望它有所帮助。