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

问题描述 投票:0回答:1

我有内容控件的问题。身体本身有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);
});
office-js
1个回答
2
投票

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

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

以下是该文档中的内容:

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

© www.soinside.com 2019 - 2024. All rights reserved.