簡體   English   中英

從子窗口調用父窗口的JavaScript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM