繁体   English   中英

关闭模式对话框而无需刷新父级

[英]Close modal dialog WITHOUT refreshing the parent

我需要关闭我的自定义表单(在模式对话框中显示),并停止刷新父站点。

单击后,我从自定义“取消”按钮调用关闭函数。

customClose() { 
    //some code here
    window.frameElement.cancelPopUp();
}

<input type="button" value="Cancel" onclick="javascript:customClose()" />

但是,如果我以这种方式关闭对话框,它将刷新父站点。 如何关闭而不刷新?

PS这是一个SharePoint模式对话框。

注意:我不能为此使用jQuery,需要纯js。

SharePoint具有一些用于显示和关闭模式对话框的内置方法。

对于SharePoint 2010,请使用SP.UI.ModalDialog.commonModalDialogClose方法关闭最近打开的模式对话框。

这是一个使用commonModalDialogClose关闭对话框的示例。 该窗口在关闭时不应刷新。

ExecuteOrDelayUntilScriptLoaded(showDialog,"sp.js");
function showDialog(){
    var dialogBody = document.createElement("div");
    var btnClose = document.createElement("button");
    btnClose.value = "Cancel";
    btnClose.innerHTML = "Cancel";
    btnClose.onclick = function(){SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.cancel,null);};
    dialogBody.appendChild(btnClose);
    SP.UI.ModalDialog.showModalDialog(
        {
            html:dialogBody,
            title:"Your Title Here",
            dialogReturnValueCallback:onClose
        }); 
}
function onClose(result,data){
    // this callback function lets you control what happens after the dialog closes
    switch(result){
        case SP.UI.DialogResult.invalid: 
            break;
        case SP.UI.DialogResult.cancel: 
            break;
        case SP.UI.DialogResult.OK: 
            window.location.reload();
            break;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM