Javascript Office.js如何插入两个内容控件,一个在选择的开始,一个在选择的结束

Javascript Office.js如何插入两个内容控件,一个在选择的开始,一个在选择的结束,javascript,office-js,word-2016,Javascript,Office Js,Word 2016,在word 2016中,当用户选择某些文本时,他们可以选择在选择的开始和结束处放置开始和结束内容控件。有什么好办法吗?每当我尝试插入内容控件时,它都会替换选定的文本 这就是我所拥有的: const ContentControlRange = context.document.getSelection(); const myContentControl = ContentControlRange.insertContentControl(); //set content control prop

在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');

但是我一直收到一个“无效参数”错误。

下面的脚本实验室代码片段适合我。它使用三个
范围
,虽然理论上两个就足够了。在任何情况下,都需要保留原始的
范围
(选择),以便可以先获取选择前的位置,然后获取选择后的位置

此代码使用
“开始”
“结束”
作为位置参数。如果未使用这些控件,则内容控件将替换所选内容,与选择文本然后键入时相同

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();
        })
    }

下面的脚本实验室代码片段适合我。它使用三个
范围
,虽然理论上两个就足够了。在任何情况下,都需要保留原始的
范围
(选择),以便可以先获取选择前的位置,然后获取选择后的位置

此代码使用
“开始”
“结束”
作为位置参数。如果未使用这些控件,则内容控件将替换所选内容,与选择文本然后键入时相同

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();
        })
    }

将我的代码更改为使用getRange start和end,但我仍然收到相同的错误。错误源似乎是返回上下文.sync()。每当我使用getRange方法插入内容控件时,都会发生错误。它对我@ArnNun起到了很好的作用。您是否检查了正在使用的Word版本是否符合
getRange
方法的要求?啊哈!就这样。在工作中,我们使用的是16.0.4266.1001。版本此版本仅包含WordApi 1.1需求集,如下所示:将我的代码更改为使用getRange start和end,但我仍然收到相同的错误。错误源似乎是返回上下文.sync()。每当我使用getRange方法插入内容控件时,都会发生错误。它对我@ArnNun起到了很好的作用。您是否检查了正在使用的Word版本是否符合
getRange
方法的要求?啊哈!就这样。在工作中,我们使用的是16.0.4266.1001。版本此版本仅包含符合以下要求的WordApi 1.1要求集: