Sharepoint 2013 Sharepoint2013模态对话框未加载
嗨,我有一个简单的页面上传到SharePoint页面库,并试图模拟没有关闭等待对话框的长时间运行的操作。 下面是我的脚本Sharepoint 2013 Sharepoint2013模态对话框未加载,sharepoint-2013,Sharepoint 2013,嗨,我有一个简单的页面上传到SharePoint页面库,并试图模拟没有关闭等待对话框的长时间运行的操作。 下面是我的脚本 <script type="text/javascript"> var waitDialog = null; function DoWork() { toggleProcessingStatus(true); UpdateUI(); toggleProcessingStatus(false);
<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>
var waitDialog=null;
函数DoWork(){
切换ProcessingStatus(真);
UpdateUI();
切换处理状态(假);
}
函数UpdateUI()
{
var lblControl=document.getElementById(“lbl”);
对于(i=0;i<20000;i++)
{
lblControl.innerText=lblControl.innerText+i;
}
}
功能切换ProcessingStatus(显示状态){
如果(显示状态){
ExecuteOrderLayUntilScriptLoaded(ShowWaitDialog,“sp.js”);
}
否则{
if(waitDialog!=null){
//设置超时(CloseWaitDialog,5000);
CloseWaitDialog();
}
}
}
函数ShowWaitDialog(){
waitDialog=SP.UI.ModalDialog.showWaitScreenWithNoClose('更新…','请稍候,更新完成…',150330);
}
函数CloseWaitDialog(){
if(waitDialog!=null){
waitDialog.close();
}
}
标签:测试等待屏幕
非常感谢您的帮助
谢谢,
Mallikarjun试试ExecuteOrderLayUntillScriptLoaded(ShowWaitDialog,“sp.ui.js”) 必须加载“sp.ui.dialog.js” 我已经将下面的代码添加到我想要打开对话框的当前页面
与前面提到的其他答案一样,您需要确保已加载脚本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);
在该模式中同时包含executeordelayuntilscript-loaded
和executeFunc
,可确保:
- ExecuteOrderLayUntilScriptLoaded-在执行封闭代码之前,请等待sp.ui.dialog加载完毕
- executeFunc-如果页面尚未请求sp.ui.dialog,请确保该对话框已加载
if(showStatus){
_spBodyOnLoadFunctionNames.push(ShowWaitDialog);
}