Я искал эти проблемы в stackoverflow и видел похожие вопросы (но не совсем то, что я ищу), но решение, похоже, не работает. Я просто новичок в jQuery, и мне нужна ваша помощь, чтобы сделать эту работу. (скрестить пальцы)
Итак, у меня есть веб-страница с кнопкой (например, parentPage.html). При нажатии на кнопку (выполняется функция openItemPopup) открывается модальный диалог с использованием пользовательского интерфейса jQuery. Содержимое модального диалога «#contentWindow» — это другая страница (например, modalDialog.html).
function resetContent() {
$('#contentFrame').attr('src', '/images/ajax-loader.gif');
}
function closeContent() {
$('.ui-dialog-titlebar-close').click();
}
function openItemPopup(){
$('#contentWindow').dialog({width:980, modal: true,
close: function(ev, ui) { resetContent(); }
});
}
Внутри modalDialog.html при нажатии на якорь выполняется некоторая логика, и ему необходимо динамически закрывать модальное диалоговое окно. Кто-то сказал мне использовать это, и это уже работает:
// refresh parent page before closing
// doesn't work
location.reload(true);
// close the modal dialog
window.top.closeContent();
return false;
window.location='javascript:void();';
Моя проблема: мне нужно обновить parentPage.html непосредственно перед закрытием модального диалогового окна. Вы видите выше, что я пытался использовать location.reload(true);, но он перезагружает модальный диалог, а не parentPage.html. Я не могу публиковать изображения, но пишет *"Недействительный сеанс веб-приложения".*
Я также попробовал window.top.location.reload(); и это, кажется, работает. Он перезагружает parentPage.html и закрывает модальное диалоговое окно.
// refresh parent page before closing
// seems working but has error
window.top.location.reload();
// close the modal dialog
window.top.closeContent();
return false;
window.location='javascript:void();';
Однако он говорит "Неверный сеанс веб-приложения" — точно так же, как это было при использовании location.reload(true);. Я понятия не имею, почему это происходит и как это исправить. Я даже не уверен, что window.top.location.reload является правильным методом для этого.
К вашему сведению: я пытаюсь обновить файл parentPage.html, чтобы получить данные из модального диалогового окна. Раньше modalDialog.html функционировал как простая html-страница. Такие данные, как список и поля, правильно возвращаются из modalDialog.html в parentPage.html. Они хотели преобразовать его в модальное диалоговое окно, чтобы избежать БОЛЬШОГО обновления страницы. Кто-то сказал мне, что можно использовать AJAX, но это много работы. Кроме того, я не мастер этого. Если у вас есть лучшее предложение, дайте мне знать!
Я надеюсь, что вы можете помочь мне в этом. Заранее спасибо!!!
location.reload();
w3schools.com/jsref/met_loc_reload.asp - person simplyray   schedule 17.01.2013location.reload();
действительно должен помочь - уже делал это раньше с jquery colorbox и запросом ajax. РЕДАКТИРОВАТЬ: добавлен ответ с другим подходом. - person simplyray   schedule 17.01.2013