私はstackoverflowでこの問題を検索し、同様の質問を見てきました(しかし、私が探しているものとは正確には異なります)が、解決策はうまくいかないようです. 私は jQuery の初心者であり、これを機能させるにはあなたの助けが必要です。(クロスフィンガー)
だから私はボタン(parentPage.htmlなど)のあるWebページを持っています。ボタンがクリックされると (openItemPopup 関数が実行されます)、jQuery UI を使用してモーダル ダイアログが開きます。モーダル ダイアログ「#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 ではなくモーダル ダイアログが再読み込みされます。写真を投稿できませんが、* 「無効な Web アプリケーション セッション」と表示されます。*
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();';
ただし、「無効な Web アプリケーション セッションです」と表示されます。-- location.reload(true); を使用したときと同じように。なぜこれが起こっているのか、それを修正する方法はわかりません。window.top.location.reload がこれを行う正しい方法であるかどうかさえわかりません。
参考: モーダル ダイアログからデータを取得できるように、parentPage.html を更新しようとしています。以前は、modalDialog.html は単純な html ページとして機能していました。リストやフィールドなどのデータは、modalDialog.html から parentPage.html に適切に返されます。彼らは、大量のページ更新を防ぐために、モーダル ダイアログとして変換したいと考えていました。AJAX を使用することは可能ですが、それは大変な作業だと誰かが私に言いました。その上、私はそれの達人ではありません。より良い提案があれば、遠慮なくお知らせください。
これについて私を助けてくれることを願っています。前もって感謝します!!!