子窗口的onload事件未触发多次

onload event not fired more than once for child windows

本文关键字:事件 窗口 onload      更新时间:2023-09-26

考虑这种情况:

var openWindow = function (name) {
    var win = window.open("/", name);
    document.write("Opening window: " + name + "<br />");
    win.onload = function () {
        document.write("Opened window: " + name + "<br />");
    };
};
var openAsdf = openWindow.bind(null, "asdf");
openAsdf();
setTimeout(openAsdf, 3000);

(见此jsfiddle)

三秒之前不要关上窗户。您会注意到第二个加载事件没有被调用(即使窗口中的页面似乎正在刷新)。为什么不呢?如何确定现有窗口何时刷新或再次调用?

在打开窗口之前连接您的onload事件。当它打开时,它可能已经开火了。

请参阅:向打开的窗口添加加载功能