2010-04-16 44 views
5

我想通过以下方式来追加onload事件,以一个弹出窗口:JavaScript的onload附加到一个弹出窗口

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

的想法是使只读生成弹出窗口,使得按钮它在弹出窗口加载完所有内容后再次可用。但是,这个事件似乎并没有被解雇。我甚至改变它到以下,并没有得到任何东西:

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

是否有我的语法可怕的错误,或者我完全错过了别的东西?另外,如果在那里有任何合适的gem,这将有助于这种情况,我使用JQuery。我尝试了以下类似的结果,但我不太确定我是否打电话正确:

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

任何帮助,非常感谢。

回答

1

这不适用于所有浏览器。我建议把加载到新窗口中的文件在onload处理程序,并有调出原来的页面:

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

其实我设法得到它在我有以下支持的浏览器工作:

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

感谢Tim的回复。

+0

真的吗?我建议你仔细测试一下。由于使用了'new',这将立即调用'unlockObj(id)'(不等待新窗口先加载),并将一个对象而不是一个函数分配给'explorerWindow.onload',它将执行什么都没有(至少没有用)。该行实际上等同于调用'unlockObj(id);'。 – 2010-04-16 17:27:34