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