Office.js 如何插入 2 个内容控件,一个在选择开始处,一个在选择结束处
Office.js How to insert 2 content controls, one at start of selection and one at end of selection
在 Word 2016 中,当用户选择一些文本时,他们可以选择在所选内容的开头和结尾放置开始和结束内容控件。有什么好办法吗?每当我尝试插入内容控件时,它都会替换选定的文本。
这是我的:
const ContentControlRange = context.document.getSelection();
const myContentControl = ContentControlRange.insertContentControl();
//set content control properties here
return context.sync().then(function () {
console.log("creating cc context.sync()");
//do other stuff
});
如果我两次调用此函数,最后一个内容控件将替换第一个内容控件。任何帮助表示感谢。
我试过了:
const ContentControlRange = context.document.getSelection().getRange('After');
但我一直收到 'Invalid Argument' 错误。
以下 Script Lab 代码片段适合我。它使用 three Ranges
,尽管理论上两个就足够了。不管怎样,需要保留原来的Range
(selection),这样就可以先得到selection之前的位置,然后再得到select之后的位置=]ion.
此代码使用 "Start"
和 "End"
作为位置参数。如果不使用这些,内容控件将替换 selection,就像您 select 文本然后键入一样。
async function
insertTwoCC() {
await Word.run(async(context) => {
let currSel = context.document.getSelection();
let rngBefore = currSel.getRange("Start");
let rngAfter = currSel.getRange("End");
let ccBefore = rngBefore.insertContentControl();
let ccAfter = rngAfter.insertContentControl();
await context.sync();
})
}
在 Word 2016 中,当用户选择一些文本时,他们可以选择在所选内容的开头和结尾放置开始和结束内容控件。有什么好办法吗?每当我尝试插入内容控件时,它都会替换选定的文本。
这是我的:
const ContentControlRange = context.document.getSelection();
const myContentControl = ContentControlRange.insertContentControl();
//set content control properties here
return context.sync().then(function () {
console.log("creating cc context.sync()");
//do other stuff
});
如果我两次调用此函数,最后一个内容控件将替换第一个内容控件。任何帮助表示感谢。
我试过了:
const ContentControlRange = context.document.getSelection().getRange('After');
但我一直收到 'Invalid Argument' 错误。
以下 Script Lab 代码片段适合我。它使用 three Ranges
,尽管理论上两个就足够了。不管怎样,需要保留原来的Range
(selection),这样就可以先得到selection之前的位置,然后再得到select之后的位置=]ion.
此代码使用 "Start"
和 "End"
作为位置参数。如果不使用这些,内容控件将替换 selection,就像您 select 文本然后键入一样。
async function
insertTwoCC() {
await Word.run(async(context) => {
let currSel = context.document.getSelection();
let rngBefore = currSel.getRange("Start");
let rngAfter = currSel.getRange("End");
let ccBefore = rngBefore.insertContentControl();
let ccAfter = rngAfter.insertContentControl();
await context.sync();
})
}