editUrl 的值为: editUrl = "javascript:Liferay.Util.openWind-6ren">
gpt4 book ai didi

liferay-6 - 如何关闭 Liferay.util.openWindow 弹出窗口?

转载 作者:行者123 更新时间:2023-12-04 21:21:32 30 4
gpt4 key购买 nike

我使用以下代码在弹出窗口上加载 WebContent 编辑 portlet:

<liferay-ui:icon 
image="edit"
message="Edit"
url="<%= editUrl %>"
/>

editUrl 的值为:
editUrl = "javascript:Liferay.Util.openWindow({ 
dialog:{
width: 960,
modal:true,
destroyOnClose: true
},
id: '" + liferayPortletResponse.getNamespace() + "',
title: '" + article.getTitle(Locale.UK, true) + "',
uri:'" + HtmlUtil.escapeURL(editPortletURLString) + "'});";

当内容被保存或发布时,portlet 被加载到弹出窗口中。我希望关闭弹出窗口并刷新带有 editURL 链接的 portlet。

最佳答案

您可以从弹出窗口中调用以下 javascript 函数 仅当 编辑成功,弹出窗口刷新:

Liferay.provide(
window,
'closePopUpAndRefreshPortlet',
function(customPopUpId) {

var A = AUI();

A.DialogManager.closeByChild('#' + customPopUpId);

var curPortletBoundaryId = '#p_p_id<portlet:namespace />';

Liferay.Portlet.refresh(curPortletBoundaryId);
},
['aui-dialog','aui-dialog-iframe']
);

说明

弹出窗口将通过提供 id: '" + liferayPortletResponse.getNamespace() + "' 关闭。的弹出窗口 DialogManagercloseByChild功能。

Liferay 已经定义了一个实用方法来通过ajax 刷新portlet,所以你可以直接通过portlet 的 <div id="p_p_id_MyWCDPortlet_">refresh功能。

因此,当成功更新后刷新弹出窗口时,如果您调用函数 closePopUpAndRefreshPortlet("customPopUpID")它首先关闭自己,然后刷新父 <div>其中包含 portlet。

希望这可以帮助。

关于liferay-6 - 如何关闭 Liferay.util.openWindow 弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292939/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com