Ms word 如何从word加载项中的当前选择中获取内容控件

Ms word 如何从word加载项中的当前选择中获取内容控件,ms-word,vsto,office365,office-js,word-addins,Ms Word,Vsto,Office365,Office Js,Word Addins,我正在使用word JavaScript api开发word插件。我想获取当前选择的内容控件。我已插入内容控件,如下所示,它正在工作: var range = context.document.getSelection(); var myContentControl = range.insertContentControl(); 如何从范围对象获取内容控件 请给出建议。您是否尝试过context.document.getSelection().contentControls 请记住加载内容控件

我正在使用word JavaScript api开发word插件。我想获取当前选择的内容控件。我已插入内容控件,如下所示,它正在工作:

var range = context.document.getSelection();
var myContentControl = range.insertContentControl();
如何从范围对象获取内容控件


请给出建议。

您是否尝试过context.document.getSelection().contentControls

请记住加载内容控件集合,以下是一些示例代码

Word.run(函数(上下文){
var myCCs=context.document.getSelection().contentControls;
上下文加载(myCCs);
返回context.sync()
.然后(函数(){
对于(变量i=0;i});以下是工作代码:

var range=context.document.getSelection().paragraphs;
context.load(range, 'text');
return context.sync()
.then(function () {
    for (var i = 0; i < range.items.length; i++) {
        context.load(range.items[i].contentControls, 'text,tag');
    }
})
.then(context.sync)
.then(function () {
    for (var i = 0; i < range.items.length; i++) {
        for (var j = 0; j < range.items[i].contentControls.items.length; i++) {
            console.log("<br/>Content Control:" + (j + 1) + ":" + range.items[i].contentControls.items[j].text);
        }
    }
});
var range=context.document.getSelection().段落;
加载(范围为“text”);
返回context.sync()
.然后(函数(){
对于(变量i=0;i内容控件:”+(j+1)+):“+range.items[i].contentControls.items[j].text);
}
}
});

当我尝试上面的“context.document.getSelection().contentControls”时,下面显示的单词错误:`{“name”:“OfficeExtension.Error”,“code”:“PropertyNotLoaded”,“message”:"属性“items”不可用。在读取属性值之前,请调用包含对象上的load方法….`。抱歉,我认为需要加载集合。我在回答中添加了更多详细信息,这将有助于移动fwd。抱歉,谢谢!谢谢@juan:由于我有内容,它不会返回contentControl控件在当前段落选择中。我是否需要获取parentContentControl以获取当前选择中的内容控件。很抱歉,当我选择段落时,上面的代码返回contentControl,但当光标位于段落上时,我不返回contentControl。我想在DocumentSelectionChanged事件中获取段落的所有contentControl。请提供建议。为此我将首先获取所选内容中的段落集合,然后遍历它。对于每个段落,获取内容控件(集合中的每个段落都包含一个contentControls集合)只是在我的原始答案中添加了更多细节,希望这会对您有所帮助。请注意,您没有将每个内容控件存储在变量中,这就是代码失败的原因。我认为有一种更简单的方法可以实现这一点,请查看我的第二个示例。