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



我正在工作中处理这段代码。基本上,每当弹出窗口关闭时.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()
};
}

我真的不知道你是如何让你的代码工作的。它根本不会。问题是您无法像尝试的那样添加事件。您需要使用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!');
});

请记住,您需要对打开的窗口 url 具有权限才能向其添加事件侦听器。

希望对您有所帮助。

最新更新