JavaScript向弹出窗口添加onload事件

5

我想以以下方式将onload事件附加到弹出窗口:

var explorerWindow = window.open(PARAMS...);
explorerWindow.onload = function() {window.opener.unlockObj(id);}

这个想法是将生成弹出窗口的按钮设置为只读,一旦弹出窗口加载完所有内容,就可以再次使用它。然而,事件似乎根本没有触发。我甚至尝试了以下更改,但仍然没有任何反应:

explorerWindow.onload = function() {alert("bloop");}

我的语法有什么严重的问题,还是我完全忽略了其他问题?此外,如果有任何适合的JQuery宝石可以在这种情况下帮助,请告诉我。我尝试了类似的结果,但我不确定是否调用正确:

$(explorerWindow).load(function() {alert("bloop");});

任何帮助都非常感激。
2个回答

1

这种方式并不适用于所有浏览器。我建议将onload处理程序放在加载到新窗口的文档中,并让它调用原始页面:

window.onload = function() {
    opener.doStuff();
}

-1

我实际上已经成功地在我需要支持的浏览器中使用以下方法使其工作:

explorerWindow.onload = new function() { explorerWindow.opener.unlockObj(id); }

谢谢你的回复,Tim。


真的吗?我建议你仔细测试一下。由于使用了 new,它将立即调用 unlockObj(id)(而不是等待新窗口首先加载),并且将一个对象分配给 explorerWindow.onload,这将不起作用(至少没有有用的作用)。那行代码实际上相当于只调用 unlockObj(id); - Tim Down

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接