Javascript 使用matchCase或matchWholeWord搜索跟踪段落中的文本会在officeJs word online中返回错误的范围
当使用搜索选项(matchCase/matchWholeWord)对跟踪对象(段落)执行搜索操作时,始终返回第一个实例。这可以通过对返回的范围进行任何字体颜色更改来确认 示例段落: 对于matchCase:“卖方应以本协议附件B(“契约”)的形式通过授予契约将不动产的所有权转让给买方。” 对于matchWholeWord:“本协议项下的所有权利和认股权证证书可在持有账簿上转让,以便进行转让。” 在上述示例中:搜索“契约”时,即使matchCase为true,也始终返回非上限的“契约”范围;搜索“转让”时,即使matchWholeWord为true,也始终返回“可转让”范围Javascript 使用matchCase或matchWholeWord搜索跟踪段落中的文本会在officeJs word online中返回错误的范围,javascript,ms-word,office-js,word-addins,Javascript,Ms Word,Office Js,Word Addins,当使用搜索选项(matchCase/matchWholeWord)对跟踪对象(段落)执行搜索操作时,始终返回第一个实例。这可以通过对返回的范围进行任何字体颜色更改来确认 示例段落: 对于matchCase:“卖方应以本协议附件B(“契约”)的形式通过授予契约将不动产的所有权转让给买方。” 对于matchWholeWord:“本协议项下的所有权利和认股权证证书可在持有账簿上转让,以便进行转让。” 在上述示例中:搜索“契约”时,即使matchCase为true,也始终返回非上限的“契约”范围;搜索“
var parRangeCol = [];
function createTrackedparagraph() {
Word.run(function (context) {
var paraList = context.document.body.paragraphs;
context.load(paraList, "text");
return context.sync().then(function () {
var para = paraList.items[0];
parRangeCol[0] = para;
context.trackedObjects.add(para);
});
});
}
function changeFontColor() {
textToHighlight = "Deed";
winstance = 0;
var para = parRangeCol[0];
var rangeCol = para.search(textToHighlight, { matchCase: true });
para.context.load(rangeCol, 'font');
return para.context.sync().then(function () {
rangeCol.items[winstance].font.color = 'red';
para.context.sync().then(function () {
})
})
}
我无法复制这个。当我选择一个段落并将其分配给
para
变量时,您的代码对我来说运行良好。可能只有当段落
是跟踪对象时才会出现问题。请提供所有代码,包括将para
作为跟踪对象的位置以及整个Word.run
。谢谢@RickKirkham,是的,这只发生在跟踪对象上。请查看更新的代码段。我无法复制此代码段。当我选择一个段落并将其分配给para
变量时,您的代码对我来说运行良好。可能只有当段落
是跟踪对象时才会出现问题。请提供所有代码,包括将para
作为跟踪对象的位置以及整个Word.run
。谢谢@RickKirkham,是的,这只发生在跟踪对象上。请参阅更新的代码段。