2014-11-03 65 views
2

我正在使用REST API創建一個列表。在我的JavaScript代碼,我寫了這樣的事情:關閉showWaitScreenWithNoClose在SharePoint CSOM

// If I declare 'waitDialog' then it is not get closed by 
// calling 'waitDialog.close()'. Without any declaration it works. 
var waitDialog; 

function createList() { 

    // Show wait dialog 
    waitDialog = SP.UI.ModalDialog.showWaitScreenWithNoClose("Please wait...", "Please wait...", 100, 300); 

    jQuery.ajax({ 
     // List data 
     }, 
     success: doSuccess, 
     error: doError 
    }); 
} 

function doSuccess(data) { 
    waitDialog.close(); // Close wait dialog 
} 

function doError(data, errorCode, errorMessage) { 
    waitDialog.close(); // Close wait dialog 
} 

如果我宣佈waitDialog with語句var waitDialog;那麼通過調用waitDialog.close()工作。如果沒有任何聲明,它會起作用,對話框關閉。我發現this question其中闡述了使用var之間的區別,但沒有任何可以澄清這種情況。

任何想法爲什麼它沒有聲明,而不是聲明?

回答

2

我無法重新創建您的聲明問題。 一件事我注意到...我相信你需要通過SP.UI.DialogResult枚舉close方法

waitDialog.close(SP.UI.DialogResult.OK); 
0

//顯示和隱藏在它等待的JavaScript

function waitMessage() { 
    window.parent.eval("window.waitDialog = SP.UI.ModalDialog.showWaitScreenWithNoClose('Processing...', '', 90, 300);"); 
} 

function closeMessage() { 
    if (window.frameElement != null) { 
     if (window.parent.waitDialog != null) { 
      window.parent.waitDialog.close(); 
     } 
    } 
} 
+0

有什麼意義的eval? – JJJ 2017-03-24 08:28:14

相關問題