[英]Call JavaScript of parent window from child window
我有一個日歷,當我點擊<td>
,會出現一個彈出窗口,這樣您就可以為所選日期創建所需的日期。 我想添加一個功能。
當用戶完成創建事件時,我想向父頁面發送JavaScript請求,以便我可以使用AJAX刷新日歷。 基本上,我想調用子函數,但函數在父頁面上。
在Google上,我只發現了一個可以刷新父窗口的腳本 - 沒有關於“父回調”的內容。 ☹甚至可能嗎?
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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.