在liferay中我们可能想使用模态弹窗。这时候我们可以这么实现。
<portlet:renderURL var="addJobPageUrl" windowState="<%=LiferayWindowState.POP_UP %>">
<portlet:param name="mvcPath" value="/html/recmanage/editjob.jsp"/>
</portlet:renderURL>
<aui:button value="测试按钮" onclick="popUpModal('<%=addJobPageUrl.toString()%>')"></aui:button>
<aui:script>
Liferay.provide(
window,
'showPopUp',
function(url) {
var instance = this;
Liferay.Util.openWindow(
{
cache: false,
dialog: {
align: Liferay.Util.Window.ALIGN_CENTER,
after: {
render: function(event) {
this.set('y', this.get('y') + 50);
}
},
width: 1000
},
dialogIframe: {
id: 'modal',
uri: url
},
title: '人才信息',
uri: url
}
);
},
['liferay-util-window']
);
</aui:script>
Liferay.provide()的第二个参数即js的函数名
子窗口获取父窗口及调用父窗口的JS方法(假设父窗口方法名为changeLogo)的写法如下
<aui:script>
Liferay.Util.getOpener().<portlet:namespace />changeLogo('<%= logoURL %>');
Liferay.Util.getWindow().hide();
</aui:script>