当我打开弹出窗口时,我希望能够设置弹出窗口可以调用的几个回调。 所以基本上我有两个页面的代码是这样的:jQuery - 如何在弹出窗口中将回调设置为父页面
*****popup.html*******
var callBack;
function OnSaveClick()
{
if (callBack)
callBack();
}
**********************************************
********popupOpener.html*************
function callBackHandler()
{
//some code here
}
function OpenPopup()
{
var p = window.open("popup.html");
p.callBack = callBackHandler;
return false;
}
这样做的问题是,VAR的回调被重置时popup.html负载的DOM和它不会加载,直到OpenPopup()上开瓶器完成。 所以接下来最好的事情是在popup.html的ready事件中设置callBack。但我想能够在popupOpener.html中将popup事件处理程序附加到popup.html的ready事件中。 所以OpenPopup功能现在看起来是这样的:
var p;
function OpenPopup()
{
p = window.open("popup.html");
$(p).ready(hookCallBack) //doesn't work
//or $(p.document).ready(hookCallBack) //doesn't work
return false;
}
function hookCallBack()
{
p.callBack = callBackHandler;
}
但hookCallBack()后,$(P)。就绪(hookCallBack),而不是当popup.html的DOM准备好立即执行。有没有其他方法可以做到这一点?
在弹出页面
我不知道为什么,但popup.onload = someFunc;弹出DOM加载后,someFunc永远不会被调用。我在IE中测试。 – sash 2011-05-20 12:52:48
你从哪里得到'popup.onload'?你所要做的就是'opener.some_function();' – Neal 2011-05-20 12:54:18
@sash看我编辑 – Neal 2011-05-20 12:55:14