我有一个日历,当我单击 时<td>
,会出现一个弹出窗口,您可以在所选日期创建您的活动。我想添加一个功能。
当用户完成创建事件时,我想向父页面发送一个 JavaScript 请求,以便我可以使用 AJAX 刷新日历。基本上,我想从孩子调用一个函数,但该函数在父页面上。
在谷歌上,我只找到了一个可以刷新父窗口的脚本——没有关于“父回调”的内容。☹ 有可能吗?
PS答案可以是纯JS也可以是jQuery,没关系。在此期间我会继续寻找。
我有一个日历,当我单击 时<td>
,会出现一个弹出窗口,您可以在所选日期创建您的活动。我想添加一个功能。
当用户完成创建事件时,我想向父页面发送一个 JavaScript 请求,以便我可以使用 AJAX 刷新日历。基本上,我想从孩子调用一个函数,但该函数在父页面上。
在谷歌上,我只找到了一个可以刷新父窗口的脚本——没有关于“父回调”的内容。☹ 有可能吗?
PS答案可以是纯JS也可以是jQuery,没关系。在此期间我会继续寻找。
您正在寻找的是对window
打开弹出窗口的引用。一旦你有了它,你就可以在那个窗口中调用函数,在那个窗口中读取和写入变量,甚至可以操作它的 DOM。
该引用称为opener
. 它为您提供window
打开当前窗口的窗口的对象。例如,如果您在原始窗口中有这样的功能:
function updateMe( data ) {
alert( data );
}
然后在弹出窗口中你可以这样称呼它:
opener.updateMe( 'Hello!' );
自然,您需要确保这updateMe()
是原始页面中的全局函数。或者,如果您在原始页面中有某个对象并且updateMe()
是该对象的方法,您仍然可以这样做,只要该对象是全局的。例如在主机页面中:
var myObject = {
updateMe: function( data ) {
alert( data );
}
};
然后在弹出窗口中您可以执行以下操作:
opener.myObject.updateMe( 'Hello!' );
基本上,只要您可以使用 访问原始页面中的对象或函数window.whatever
,然后在弹出窗口中您可以简单地将其更改为opener.whatever
.