Liferay 打开对话框后如何执行函数?

Liferay 打开对话框后如何执行函数?,liferay,liferay-6,yui,liferay-aui,alloy-ui,Liferay,Liferay 6,Yui,Liferay Aui,Alloy Ui,打开对话框后,我需要执行一个函数。 我尝试了以下方法: Liferay.Util.openWindow({ dialog: {centered: true}, id:'myID', title: 'Title', uri: _url }); alert("Loading Complete"); <a href="javascript: void(0);" onclick="javascript: showDialog();">Show Dia

打开对话框后,我需要执行一个函数。
我尝试了以下方法:

Liferay.Util.openWindow({
    dialog: {centered: true}, 
    id:'myID', 
    title: 'Title', 
    uri: _url 
});
alert("Loading Complete");
<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>
我在打开对话框后但在请求完成之前收到了
alert()

在加载对话框和请求完成后,如何执行函数

我尝试了成功,但没有成功:

Liferay.Util.openWindow({
    dialog: {centered: true}, 
    id:'myID', 
    title: 'Title', 
    uri: _url
}).on("success", function(){
    alert("Loading Complete");
});

如果您正在使用该
\uURL
打开portlet的本地视图/jsp,我建议在相应jsp中调用
窗口上的
函数执行
。onload
或jQuery
文档.ready

但是,如果没有,您仍然可以尝试执行以下操作,即向
函数添加延迟(
setTimeout
),以执行以下操作:

Liferay.Util.openWindow({
    dialog: {centered: true}, 
    id:'myID', 
    title: 'Title', 
    uri: _url 
});
alert("Loading Complete");
<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>

函数showDialog(){
AUI().ready(函数(A){
Liferay.Util.openWindow({
对话框:{centered:true},
id:“myID”,
标题:“标题”,
uri:\u url
});
设置超时(功能被执行,3000);
});
}
函数functionToBeExecuted(){
警报(‘呼叫’);
}

注意:
functionToBeExecuted
是您希望调用的函数的名称。

您在弹出窗口中显示了什么?这是什么
\uURL
?我还没有测试过,但是您可以尝试在
对话框中侦听
visibleChange
事件:{centered:true,on:{visibleChange:function(event){if(event.newVal){alert('dialogOpened');}}}