任务窗格Word加载项(office js)-搜索函数在Word 365联机中返回空对象{}



我创建了一个任务窗格Word插件,用React Typescript编写。此sideload加载项将搜索Word文档中的单词列表,并用新单词替换它们。所有功能在桌面MS Word中都能很好地工作,并能找到所有单词。当我在线将清单上传到Word 365时,任务窗格加载并查找,但当我单击按钮进行搜索时,却一无所获。搜索函数的结果总是空对象{}下面你可以看到我的搜索部分的代码,当用户点击搜索按钮时会触发。它在桌面版上工作,但在Word 365在线中不工作

(async () => {
try {
let options = Word.SearchOptions.newObject(context);
options.matchCase = false;
options.matchWholeWord = true;
options.ignorePunct = true;

await Promise.all(
WordList.map(async (data: customWord) => {
// NOTE: In Word 365 online, searchResults is always {} 
const searchResults = textSelected
? context.document.getSelection().search(data.word, options)
: context.document.body.search(data.word, options);
searchResults.load("items, text");
allSearchResults.push(searchResults);
})
);
} catch (error) {
console.error(error);
}
})();

有人知道为什么Word Online中的搜索结果为空吗?当通过浏览器运行时,它是否与代码Promise.all((有关?

我弄清楚了问题的来源。当您的搜索函数中有matchWholeWord选项或至少将其设置为True时,就会出现此问题。通过删除这个选项,我可以在Word在线事件中看到结果,尽管我得到的结果并不像我预期的那样,这是有道理的。我没有尝试其他搜索选项,也不知道其他选项,在我的情况下,这只是其中的三个。以下是我为在Word online中获得结果所做的更改。

let options = Word.SearchOptions.newObject(context);
options.matchCase = false;
options.ignorePunct = true;

这是Word online中的SearchOption错误,据报道是office js GitHub repo中的一个问题
https://github.com/OfficeDev/office-js/issues/218

Microsoft通用!修复它!我们需要它!

相关内容

最新更新