2

我为 word 2016 创建了一个任务窗格,其中有两个按钮,例如 'addcontentcontrol' 和 'retrievecontentcontrol' 。在文档中添加内容控件可以正常工作。当我选择该内容控件的文本并点击“检索内容控件”时,它会返回文本。但是,我想检查所选文本是否包含内容控件或纯文本。提前非常感谢。

4

2 回答 2

2

我想你在问两件事。如果您正在选择内容控件的文本,并且想要返回内容控件,那么您需要执行以下操作:

您需要检查 range.parentContentControl 属性以检查所选文本是否在内容控件中。如果返回的值不为 null,那么您可能需要比较内容控件的文本值和所选范围的文本值,以确保它们是等价的。

var contentControl = context.document.getSelection().parentContentControl;

但是,如果您想检查选择中的某些任意文本是否包含内容控件,那么您需要检查范围上的内容控件集合。

var contentControlCollection = context.document.getSelection().contentControlCollection;
于 2016-04-18T16:46:36.450 回答
1

Maybe that happens because you are not loading the content control before calling context.sync()? ... try this code it must work (note that we get a GeneralException if there is no content control in the selection). Note that This sample assumes that if there is a content control it has a title on it :)

 function insideOfContentControlCheck() {
        Word.run(function (ctx) {
            var myCC = ctx.document.getSelection().parentContentControl;
            ctx.load(myCC); // I think this is the part you are missing!
            return ctx.sync()
            .then(function () {     
                console.log(myCC.title);// if there is a content control we'll show the title

            });


        }).catch(function (e) {
            //there is no ContentControl.
            console.log("Error", e.message);

        });

    }

于 2016-04-19T17:11:01.670 回答