document.contentControls不会返回所有富文本内容控件

时间:2017-12-19 13:05:31

标签: office-js

我的内容控件存在问题。身体本身有5个CC,身体里面有3个CC。

此示例代码直接在文档正文中返回5个CC。我已经确保所有CC都是富文本内容控件的类型。

Word.run(function (context) {
    const { document, document { body } } = context.document;

    context.load(document, 'contentControls');
    //Or context.load(body, 'contentControls');

    return context.sync().then(function () {
        const { contentControls } = document;
        //Or const { contentControls } = body;
         console.warn("len", contentControls.items.length);
    });
}).catch(function (e) {
    console.error(e);
});

1 个答案:

答案 0 :(得分:2)

我无法重现您描述的问题。首先,我完成了以下设置步骤:

  1. 在新文档中,添加几行文字和一个表格。
  2. 向文档添加3个内容控件:
    • 将一个内容控件添加到第一行文本
    • 将一个内容控件添加到第三行文本
    • 在表格中添加一个内容控件(到表格的第2行第1列的文本)
  3. 以下是文档中的内容:

    enter image description here

    手动创建文档并按上述方法添加内容后,我运行了此代码段。

    Word.run(function (context) {
        var myContentControls = context.document.contentControls;
        myContentControls.load("tag");
    
        return context.sync()
            .then(function () {
                for (var i = 0; i < myContentControls.items.length; i++)
                {
                    myContentControls.items[i].color = "blue";
                    myContentControls.items[i].title = "myCC";
                    myContentControls.items[i].appearance = "tags";
                }
                return context.sync();
            });
    }).catch(OfficeHelpers.Utilities.log);
    

    此代码段获取文档包含的内容控件,然后为每个控件设置标记属性。从下面的屏幕截图(在代码片段运行后显示文档)中可以看到,所有3个内容控件都已成功识别,包括表格内的控件。

    enter image description here