【问题标题】:SharePoint Modal - paste value back to parent when closingSharePoint 模态 - 关闭时将值粘贴回父级
【发布时间】:2013-09-05 01:14:40
【问题描述】:

我创建了一个自定义功能区按钮,用于将外部内容加载到模态对话框中。我想在编辑器上插入一些文本并关闭对话框。当我单击对话框上的某些内容时,函数 OnPopClosed 正在运行,但出现错误:未定义 RTE,因此我无法在编辑器中插入任何内容。有任何想法吗?

function init(){
    var options = SP.UI.$create_DialogOptions();
    options.title = "Sharepoint Plugin";
    options.width = 600;
    options.height = 400;
    options.url = '/_Layouts/Test/Test.aspx';
    options.dialogReturnValueCallback = OnPopClosed;
    SP.UI.ModalDialog.showModalDialog(options);
}
function OnPopClosed(test) {

    var range = RTE.Cursor.get_range();
    range.deleteContent();
    var selection = range.parentElement();
    if (!selection) {
        return;
    }

    range.insertNode(elem);
    RTE.Cursor.get_range().moveToNode("test");
    RTE.Cursor.update();

    SP.UI.ModalDialog.commonModalDialogClose(1, "test");
}

【问题讨论】:

    标签: javascript sharepoint modal-dialog ribbon rte


    【解决方案1】:

    SP.SOD.executeOrDelayUntilScriptLoaded 中放置 RTE 操作,以便在加载包含它的文件时执行指定的函数(在您的情况下为 sp.ui.rte.js):

    ExecuteOrDelayUntilScriptLoaded(RTEActions, "sp.ui.rte.js");
    

    示例:

    function RTEActions()
    {
        var range = RTE.Cursor.get_range();
        //Remaining code goes here...
        SP.UI.ModalDialog.commonModalDialogClose(1, "test");
    }
    

    然后像这样声明对话框处理程序:

    function OnPopClosed() {
       ExecuteOrDelayUntilScriptLoaded(RTEActions, "sp.ui.rte.js");
    }
    

    【讨论】:

    • 我知道这与 SharePoint SE 上的问题相同,但无论如何我在这里提供答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多