我正在尝试这样做:
$(function() {
var parent = window.opener;
$(window).bind('unload', function() {
parent.setTimeout(function() {
parent.console.log('Fired!');
}, 200);
}
});
上面的示例在 FF、Chrome 等中运行良好,但不适用于 IE8。在后者中, setTimeout() 中指定的回调似乎永远不会被触发。
基本原理是,当弹出窗口关闭时,我想在父窗口(window.opener)中执行一些代码。我希望弹出窗口对此负责,而不是相反。
只是为了表明这个概念有效:
$(function() {
var parent = window.opener;
$(window).bind('unload', function() {
parent.console.log('Fired!');
}
});
在绑定到卸载的回调中立即调用 console.log(如上例所示)似乎在所有浏览器中都有效(此处不针对 IE6),但是一旦我将 setTimeout() 添加到混合中,它就会中断。
可能吗?是范围问题吗?