如何在用户不选择整个内容的情况下检测内容控件?
How can I detect a content control without the user selecting the whole thing?
背景
我在我的 word 文档中插入了一堆内容控件。每个内容控件都是一些文本,例如“你好世界”。
我正在尝试做什么
当用户将光标放在内容控件中时,我想在我的加载项中访问内容控件的详细信息。
我试过的
我在启动时运行这个。
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, () => {
Word.run( async (context) => {
const range = context.document.getSelection();
console.log({range});
const contentControls = range.contentControls;
contentControls.load("items");
await context.sync();
console.log('contentControls.items', contentControls.items)
})
})
问题
如果用户在内容控件中弹出光标,则不会报告“项目”。但是,如果用户突出显示整个内容控件,则会正确报告“项目”。
问题
有没有一种方法可以检测用户是否在内容控制范围内,而无需他们 select 整个过程?
尝试使用 Range.parentContentControl(或 parentContentControlOrNullObject)获取对包含内容控件的引用。
例如,
const parentContentControl = range.parentContentControlOrNullObject;
await context.sync();
if (parentContentControl.isNullObject) {
console.log("The cursor is not in a content control")
}
else {
console.log('parentContentControl', parentContentControl);
}
背景
我在我的 word 文档中插入了一堆内容控件。每个内容控件都是一些文本,例如“你好世界”。
我正在尝试做什么
当用户将光标放在内容控件中时,我想在我的加载项中访问内容控件的详细信息。
我试过的
我在启动时运行这个。
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, () => {
Word.run( async (context) => {
const range = context.document.getSelection();
console.log({range});
const contentControls = range.contentControls;
contentControls.load("items");
await context.sync();
console.log('contentControls.items', contentControls.items)
})
})
问题
如果用户在内容控件中弹出光标,则不会报告“项目”。但是,如果用户突出显示整个内容控件,则会正确报告“项目”。
问题
有没有一种方法可以检测用户是否在内容控制范围内,而无需他们 select 整个过程?
尝试使用 Range.parentContentControl(或 parentContentControlOrNullObject)获取对包含内容控件的引用。
例如,
const parentContentControl = range.parentContentControlOrNullObject;
await context.sync();
if (parentContentControl.isNullObject) {
console.log("The cursor is not in a content control")
}
else {
console.log('parentContentControl', parentContentControl);
}