如何在不破坏页面的情况下在 SharePoint 2010 中显示一个简单的对话框?

How to display a simple dialog in SharePoint 2010 without breaking the page?

我今天为此工作了几个小时,但一无所获。希望有人可以介入并请提供帮助。

我只想在弹出对话框中显示一条简单的消息,告诉用户 SharePoint 2010 网站即将发生的一些变化。没想到这么难!

我通过 Google 搜索找到了十几个链接,但没有任何帮助。

唯一可行的是我放入内容编辑器 Web 部件中的代码:

<script type="text/javascript">
    function codeAddress() {
        alert('ok');
        var options = {

            Title: "Survey",

            height: 500

        };
        _spBodyOnLoadFunctionNames.push("codeAddress");
    }
    window.onload = codeAddress;
</script>

但是,这段代码的问题是在我点击确定之后,页面表现异常。页面的java脚本不起作用,连编辑页面都搞砸了,直到我用代码删除了webpart。

我怀疑问题与此有关:

_spBodyOnLoadFunctionNames.push

但是,如果我将其删除,则弹出窗口将不起作用。

如果不清楚,我的目标是显示任何类型的对话框,我可以在其中键入一两句话来告诉用户一些事情。然后他们可以单击“确定”并将完全控制权交还给该页面。

请大家帮忙!

对 Google 感到羞耻,因为它没有直接将您带到 SP.UI.Modal.Dialog.showModalDialog()

<script>
ExecuteOrDelayUntilScriptLoaded(showDialog,"sp.js");

function showDialog(){
    var options = SP.UI.$create_DialogOptions();
    options.title = "My Amazing Dialog Box";

    // create a dummy HTML element for the body of your dialog box
    var div = document.createElement("div");
    div.appendChild(document.createTextNode("Some text inside my dialog box."));
    options.html = div;

    SP.UI.ModalDialog.showModalDialog(options);
}
</script>

如果您想将其放入内容编辑器 Web 部件中:

  1. 将以上代码保存到文本文件中
  2. 将该文本文件上传到您网站上的文档库
  3. 将内容编辑器 Web 部件添加到您希望对话框出现的页面
  4. 编辑 Web 部件,打开屏幕一侧的 Web 部件属性面板
  5. 将您上传的文本文件的 URL 粘贴到 "Content Link" 属性

此方法可防止 SharePoint 从内容编辑器 Web 部件中删除您的 JavaScript,并允许您在多个页面上使用相同的脚本。