Вызов JavaScript родительского окна из дочернего окна

У меня есть календарь, и когда я нажимаю на <td>, появится всплывающее окно, чтобы вы могли создать свой evenement для выбранной даты. Я хочу добавить функцию.

когда пользователь завершит создание события, я хочу отправить запрос JavaScript на родительскую страницу, чтобы я мог обновить календарь с помощью AJAX. В принципе, я хочу вызвать функцию из дочернего элемента, но функция находится на родительской странице.

в Google я нашел только скрипт, который может обновить Родительский window-ничего о "родительском обратном вызове". Это вообще возможно?

П. С. ответ может быть чистым JS или jQuery, то это не имеет значения. А я тем временем продолжу поиски.

1 ответов


то, что вы ищете, является ссылкой на 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, затем в popup вы можете просто изменить это на opener.whatever.