您好我有一个简单的页面上传到SharePoint页面库并尝试模拟长时间运行操作,没有关闭等待对话框。 以下是我所拥有的脚本
<script type="text/javascript">
var waitDialog = null;
function DoWork() {
toggleProcessingStatus(true);
UpdateUI();
toggleProcessingStatus(false);
}
function UpdateUI()
{
var lblControl = document.getElementById("lbl");
for (i = 0; i < 20000; i++)
{
lblControl.innerText = lblControl.innerText + i;
}
}
function toggleProcessingStatus(showStatus) {
if (showStatus) {
ExecuteOrDelayUntilScriptLoaded(ShowWaitDialog, "sp.js");
}
else {
if (waitDialog != null) {
//setTimeout(CloseWaitDialog, 5000);
CloseWaitDialog();
}
}
}
function ShowWaitDialog() {
waitDialog = SP.UI.ModalDialog.showWaitScreenWithNoClose('Updating...', 'Please wait while update completes...', 150, 330);
}
function CloseWaitDialog() {
if (waitDialog != null) {
waitDialog.close();
}
}
</script>
<input type="button" id="btnShowDialog" title="Do Long Running Work" name="Do Long Running Work" onclick="javascript: DoWork();" value="Do Long Running Work"/>
Label: <label id="lbl" title="Test">Test Wait Screen</label>
非常感谢任何帮助。
谢谢, Mallikarjun
答案 0 :(得分:0)
尝试ExecuteOrDelayUntilScriptLoaded(ShowWaitDialog,“sp.ui.js”);
答案 1 :(得分:0)
&#34; sp.ui.dialog.js&#34;必须加载。
我已将下面的代码添加到我想要打开对话框的curent页面。
答案 2 :(得分:0)
与上述其他答案一样,您需要确保加载脚本sp.ui.dialog.js脚本。您可以使用类似于下面的代码
执行此操作SP.SOD.executeOrDelayUntilScriptLoaded(function () {
SP.UI.ModalDialog.showModalDialog(options);
}, "sp.ui.dialog.js");
//ensure script is loaded
SP.SOD.executeFunc("sp.ui.dialog.js", null, null);
在此模式中包含executeOrDelayUntilScriptLoaded
和 executeFunc
可确保以下内容:
答案 3 :(得分:0)
尝试_spBodyOnLoadFunctionNames.push('functionName');
在你的情况下
if (showStatus) {
_spBodyOnLoadFunctionNames.push(ShowWaitDialog);
}