Вызов 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
.