我需要关闭自定义表单(在模式对话框中显示),并停止刷新父站点。
单击后,我从自定义“取消”按钮调用关闭函数。
customClose() {
//some code here
window.frameElement.cancelPopUp();
}
<input type="button" value="Cancel" onclick="javascript:customClose()" />
但是,如果我以这种方式关闭对话框,它将刷新父站点。如何关闭而不刷新?
附言这是一个SharePoint模式对话框。
注意:我不能为此使用jQuery,需要纯js。
最佳答案
SharePoint具有一些用于显示和关闭模式对话框的内置方法。
对于SharePoint 2010,使用SP.UI.ModalDialog.commonModalDialogClose
method关闭最近打开的模式对话框。
这是一个使用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;
}
}
关于javascript - 关闭模式对话框而无需刷新父级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36797849/