打开Dialog后如何执行功能?

时间:2016-03-01 14:14:48

标签: liferay liferay-6 yui liferay-aui alloy-ui

打开对话框后我需要执行一个功能 我尝试了以下内容:

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

我在对话框打开后但在请求完成之前得到alert() 如何在加载Dialog后和请求完成后执行函数?

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

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

1 个答案:

答案 0 :(得分:0)

如果您正在使用_url打开portlet的本地视图/ jsp,我建议在相应的jsp中调用functionToBeExecuted或jQuery window.onload上的document.ready

但是,如果没有,您仍然可以尝试使用,即将延迟(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是您希望致电的功能名称。