在liferay中我们可能想使用模态弹窗。这时候我们可以这么实现。
<
portlet:renderURL
var
=
"addJobPageUrl"
windowState="<%=LiferayWindowState.POP_UP %>">
<
portlet:param
name
=
"mvcPath"
value
=
"/html/recmanage/editjob.jsp"
/>
</
portlet:renderURL
>
<
aui:button
value
=
"测试按钮"
onclick="showPopUp('<%=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>