我在关闭弹出窗口时遇到问题。我打开弹出窗口并使用以下代码
view.jsp的
<aui:script>
AUI().use('aui-base',
'aui-io-plugin-deprecated',
'liferay-util-window',
'liferay-portlet-url',
'aui-dialog-iframe-deprecated','aui-modal',
function(A) {
var modal=null;
A.one('#<portlet:namespace />updateNewsPaper').on('click', function(){
A.one('#modal-content').setStyle('display','block')
modal = new A.Modal(
{
srcNode : '#modal-content', //contentBox:#modal-content
centered: true,
headerContent: '<h3>Confirmation</h3>',
modal: true,
render: '#modal',
width: 450
}
).render();
});
A.one('#<portlet:namespace />btnNo').on('click', function(event){
modal.hide();
});
A.one('#<portlet:namespace />btnYes').on('click',function(event) {
modal.hide();
var paperId=document.getElementById('newsPaperId').value;
var newsUrl=document.getElementById('newsPaperUrl').value;
var keyword=document.getElementById('subject').value;
var flag = document.getElementById("flag").value;
var status='update';
var newsPaperName = document.getElementById("newsPaperName").value;
var popUpWindow=Liferay.Util.Window.getWindow(
{
dialog: {
centered: true,
constrain2view: true,
//cssClass: 'yourCSSclassName',
modal: true,
resizable: false,
width: 500
},
}
).plug(
A.Plugin.DialogIframe,
{
id: '<portlet:namespace/>dialog',
autoLoad: false,
iframeCsviewpdfsClass: 'dialog-iframe',
uri:'<%= portletSettingsURL.toString() %>' + '&<portlet:namespace/>paperId=' + paperId + '&<portlet:namespace/>newsUrl=' + newsUrl + '&<portlet:namespace/>keyword=' + keyword + '&<portlet:namespace/>flag=' + flag + '&<portlet:namespace/>status=' + status + '&<portlet:namespace/>newsPaperName=' + newsPaperName
}).render();
['aui-io-plugin-deprecated', 'liferay-util-window']
popUpWindow.show();
popUpWindow.titleNode.html("Are you sure? Do you want to update record?");
popUpWindow.io.start();
});
});
</aui:script>
<aui:script>
Liferay.provide(window,'<portlet:namespace/>closePopup',function(dialogId){
var A = AUI();
var dialog = Liferay.Util.Window.getById(dialogId);
alert(dialogId);
dialog.destroy();
},
['aui-base','aui-dialog','aui-dialog-iframe']
);
</aui:script>
<portlet:renderURL var="portletSettingsURL" windowState="<%= LiferayWindowState.POP_UP.toString() %>">
<portlet:param name="mvcPath" value="/html/openDialog.jsp" />
</portlet:renderURL>
openDialog.jsp
<aui:script use="aui-base">
A.one('#<portlet:namespace/>closeDialog').on('click', function(event) {
alert("hello");
alert('<portlet:namespace/>dialog');
Liferay.Util.getOpener().<portlet:namespace/>closePopup('<portlet:namespace/>dialog');
});
</aui:script>
我收到了以下错误消息 **
TypeError:对话框未定义
**
我在openDialog.jsp文件中有操作按钮和表单控件。 我点击“否”按钮时关闭弹出窗口。当我点击Yes按钮然后首先我的qction应该执行然后关闭我的弹出窗口。 当我单击操作按钮时,会发生一些处理,例如在db中插入我的记录。 插入完成后,opendialog应自动关闭,然后我回到我的页面。
我怎样才能实现这个目标?
提前致谢