如何在打开对话框后执行某个功能?
问题描述:
我需要在打开一个对话框后执行一个功能。
我试着用下面的:如何在打开对话框后执行某个功能?
Liferay.Util.openWindow({
dialog: {centered: true},
id:'myID',
title: 'Title',
uri: _url
});
alert("Loading Complete");
我得到alert()
对话开幕之后,但在请求之前完成。
如何在加载对话框和请求完成后执行一个函数?
我试图与成功,但是不起作用:
Liferay.Util.openWindow({
dialog: {centered: true},
id:'myID',
title: 'Title',
uri: _url
}).on("success", function(){
alert("Loading Complete");
});
答
如果您打开使用_url
,我会推荐给调用functionToBeExecuted
在该window.onload
或jQuery的document.ready
Portlet的本地视图/ JSP各自的jsp。
然而,如果不是,还有一个工作,以防万一,你可以用即尝试添加延迟(setTimeout
)到functionToBeExecuted
如下:
<a href="javascript: void(0);" onclick="javascript: showDialog();">Show Dialog</a>
<script type="text/javascript">
function showDialog(){
AUI().ready(function(A) {
Liferay.Util.openWindow({
dialog: {centered: true},
id: 'myID',
title: 'Title',
uri: _url
});
setTimeout(functionToBeExecuted, 3000);
});
}
function functionToBeExecuted(){
alert('Called!');
}
</script>
注:functionToBeExecuted
是的名称功能,你想打电话。
你在那个弹出窗口中显示了什么?这是什么'_url'? –
我还没有测试过这个,但是你可以尝试在你的对话框中听到'visibleChange'事件:{centered:true,on:{visibleChange:function(event){if(event.newVal){alert('dialogOpened “); }}}}'。 – stiemannkj1