2016-04-22 76 views
0

我需要關閉我的自定義窗體(我在模態對話框中顯示)並停止刷新父網站。關閉模式對話框無需刷新父項

我通過點擊自定義「取消」按鈕來調用我的關閉功能。

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

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

但是,如果我這樣關閉我的對話框,它會刷新父站點。我如何關閉它而不刷新?

P.S.這是一個SharePoint模式對話框。

注:我不能使用jQuery爲此,需要純js。

+0

您使用的是哪個版本的SharePoint? – Thriggle

+0

SharePoint Online(2013)@Thriggle –

回答

1

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; 
    } 
} 
+0

謝謝!有用。問題是我有{location.reload(); }在dialogReturnValueCallback上,現在我使用你的代碼來檢查回調,並且只在「OK」上刷新。 –

相關問題