ポップアップを閉じるコードは次のとおりです。これは、ポップアップを開く親ページに存在する必要があります。
ライフレイ バージョン 6.1
Liferay.provide(
window,
'<portlet:namespace />closePopup',
function(popupIdToClose) {
var A = AUI();
A.DialogManager.closeByChild('#' + popupIdToClose);
},
['aui-base','aui-dialog','aui-dialog-iframe']
);
ライフレイ バージョン 6.2
Liferay.provide(
window,
'<portlet:namespace/>closePopup',
function(popupIdToClose) {
var popupDialog = Liferay.Util.Window.getById(popupIdToClose);
popupDialog.destroy();
},
['liferay-util-window']
);
ポップアップを開いたポートレットを更新するコードを次に示します。これは、ポップアップを開く親ページに存在する必要があります。
Liferay.provide(
window,
'<portlet:namespace />refreshPortlet',
function() {
<%-- refreshing the portlet [Liferay.Util.getOpener().] --%>
var curPortletBoundaryId = '#p_p_id<portlet:namespace />';
Liferay.Portlet.refresh(curPortletBoundaryId);
},
['aui-dialog','aui-dialog-iframe']
);
closePopup
&refreshPortlet
関数を呼び出す方法はあなた次第です。1 つの方法は、ポップアップを更新してclosePopup
、リクエストが正常に処理された場合にのみポップアップ自体から関数を呼び出してrefreshPortlet
から、ポップアップからも関数を呼び出すことです。
ポップアップから親ページ関数を呼び出すのに役立つコード スニペットを次に示します。
Liferay.Util.getOpener().<portlet:namespace />closePopup(popupIdToClose);
Liferay.Util.getOpener().<portlet:namespace />refreshPortlet();
これは、次のようにポップアップを開くときに使用されるものpopupIdToClose
と同じです。id
taglibEditURL = "javascript:"
+ Liferay.Util.openWindow({"
+ "dialog: {width: 960},"
+ "id: '" + renderResponse.getNamespace() + "'," // This is the "popupIdToClose"
+ "title: '" + LanguageUtil.format(request.getLocale(), "edit-x", HtmlUtil.escape(assetRenderer.getTitle(request.getLocale()))) + "',"
+ "uri:'" + HtmlUtil.escapeURL(editPortletURLString)
+ "'}"
+ ");";
お役に立てれば。