gpt4 book ai didi

popup - 如何关闭 Liferay 中的弹出窗口?

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

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

<liferay-ui:icon
image="edit"
label="true"
message="news-edit-url"
url="${oneNews.newsEditUrl}"
/>

editUrl:

taglibEditURL = "javascript:Liferay.Util.openWindow({dialog: {width: 960}," + 
"id: '" + renderResponse.getNamespace() + "'," +
"title: '" + LanguageUtil.format(request.getLocale(), "edit-x", HtmlUtil.escape(assetRenderer.getTitle(request.getLocale()))) + "'," +
"uri:'" + HtmlUtil.escapeURL(editPortletURLString) + "'});";

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

有关此的任何帮助...

最佳答案

这是关闭弹出窗口的代码,它应该存在于打开弹出窗口的父页面中:

Liferay 6.1 版

Liferay.provide(
window,
'<portlet:namespace />closePopup',
function(popupIdToClose) {

var A = AUI();

A.DialogManager.closeByChild('#' + popupIdToClose);
},
['aui-base','aui-dialog','aui-dialog-iframe']
);

Liferay 6.2 版

Liferay.provide(
window,
'<portlet:namespace/>closePopup',
function(popupIdToClose) {

var popupDialog = Liferay.Util.Window.getById(popupIdToClose);

popupDialog.destroy();
},
['liferay-util-window']
);

这是刷新打开弹出窗口的 portlet 的代码。这应该出现在打​​开弹出窗口的父页面中:

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']
);

如何调用 closePopuprefreshPortlet 函数由您决定。一种方法是您可以让弹出窗口刷新并仅在成功处理请求时从弹出窗口本身调用 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)
+ "'}"
+ ");";

希望这会有所帮助。

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

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