2015-05-04 114 views
-1

以下代码我用于打开弹出窗口。我如何在提交时关闭相同的内容?Liferay:关闭弹出提交?

function popupCreation(url){ 
     AUI().use('liferay-util-window', 'aui-io-deprecated', 
     function(A) { 
      modal=Liferay.Util.openWindow({ 
       dialog: { 
        id:'closeid', 
        centered: true, 
        modal: true, 
        width: 950, 
        height:750, 
       }, 
       uri: '<%=editSettingsURL%>' 
      }); 
     }); 
    } 

回答

0

试试这个

Liferay.Util.getOpener().<portlet:namespace />closePopup('<portlet:namespace />YOUR_POPUP_ID') 
0

请尝试关闭弹出窗口下面的代码:

AUI().use('liferay-util-window', 'aui-io-deprecated', 
function(A) { 
    modal=Liferay.Util.openWindow({ 
     dialog: { 
      id:'closeid', 
      centered: true, 
      modal: true, 
      width: 950, 
      height:750, 
     }, 
     uri: '<%=editSettingsURL%>' 
    }); 
}); 
Liferay.provide(
    window, 
    'closePopup', 
    function(popupIdToClose) { 
     var dialog = Liferay.Util.getWindow(popupIdToClose); 
     dialog.destroy(); // You can try toggle/hide whatever You want 
     }, 
    ['aui-base','aui-dialog','aui-dialog-iframe'] 
    ); 
    }); 
}); 
1

此页可能会有帮助 - How to close a Dialog IFrame in Liferay 6.2

如果你定义模式窗口像这样(假设在view.jsp):

<aui:button name="openDialog" type="button" value="open-dialog" /> 

    <liferay-portlet:renderURL var="dialogURL" windowState="<%=LiferayWindowState.POP_UP.toString() %>"> 
     <liferay-portlet:param name="mvcPath" value="/dialog.jsp" /> 
    </liferay-portlet:renderURL> 
    <aui:script use="liferay-util-window"> 
    A.one('#<portlet:namespace/>openDialog').on('click', function(event) { 
     Liferay.Util.openWindow({ 
      dialog: { 
       centered: true, 
       height: 300, 
       modal: true, 
       width: 400 
      }, 
      id: '<portlet:namespace/>dialog', 
      title: '<liferay-ui:message key="i-am-the-dialog" />', 
      uri: '<%=dialogURL %>' 
     }); 
    }); 
</aui:script> 

,并创建对话框页面内按键触发(或你的情况onsubmit事件监听器)(dialog.jsp):

<aui:button name="closeDialog" type="button" value="close" /> 

<aui:script use="aui-base"> 
    A.one('#<portlet:namespace/>closeDialog').on('click', function(event) { 
     // Let's suppose that "data" contains the processing results 
     var data = ... 
     // Invoke a function with processgin results and dialog id 
     Liferay.Util.getOpener().<portlet:namespace/>closePopup(data, '<portlet:namespace/>dialog'); 
    }); 
</aui:script> 

你会得到打开窗口通过getOpener()函数进行对话。在创建对话框(view.jsp)的页面中,您必须提供像这样的closePopup功能:

<aui:script> 
    Liferay.provide(
     window, 
     '<portlet:namespace/>closePopup', 
     function(data, dialogId) { 
      var A = AUI(); 

      // Here you can use "data" parameter 

      // Closing the dialog 
      var dialog = Liferay.Util.Window.getById(dialogId); 
      dialog.destroy(); 
     }, 
     ['liferay-util-window'] 
    ); 
</aui:script>