liferay模态弹窗

在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>