2016-04-22 76 views
0

私はモーダルダイアログで表示する私のカスタムフォームを閉じて、親サイトがリフレッシュするのを止める必要があります。モーダルダイアログを閉じる親をリフレッシュせずに

私はクリック時にカスタム "キャンセル"ボタンから私のclosing関数を呼び出します。

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"でのみ更新します。 –

関連する問題