Ms office 如何突出显示选定范围内的特定单词?

Ms office 如何突出显示选定范围内的特定单词?,ms-office,office-js,office-addins,word-addins,Ms Office,Office Js,Office Addins,Word Addins,基本上,我必须突出显示数组中接收到的单词。在控制台上,我在第一次迭代后收到以下错误: 未处理的拒绝属性NotLoaded:属性“items”不可用。在读取属性值之前,对包含对象调用load方法,并对关联的请求上下文调用“context.sync()” 代码如下: var color = systemService.getColor(item.gradeText); var filteredWords = $(item.words).not($scope.stopList).get();

基本上,我必须突出显示数组中接收到的单词。在控制台上,我在第一次迭代后收到以下错误:

未处理的拒绝属性NotLoaded:属性“items”不可用。在读取属性值之前,对包含对象调用load方法,并对关联的请求上下文调用“context.sync()”

代码如下:

 var color = systemService.getColor(item.gradeText);
 var filteredWords = $(item.words).not($scope.stopList).get();

            Word.run(function (context) {
                var selectedRange = context.document.getSelection();
                context.load(selectedRange, "text");
                return context.sync().then(function () {
                    for (var i = 0; i < filteredWords.length; i++) {

                        var searchResults = null;

                        searchResults = selectedRange.search(filteredWords[i], { ignorePunct: true, matchCase: false, matchWholeWord: true });

                        context.load(searchResults, 'font');

                        context.sync().then(function () {
                            for (var i = 0; i < searchResults.items.length; i++) {
                                searchResults.items[i].font.color = color;
                                searchResults.items[i].font.bold = true;
                            }

                        });
                    }
                }).then(context.sync);

            })
               .catch(function (error) {
                   console.log('Error: ' + JSON.stringify(error));
                   if (error instanceof OfficeExtension.Error) {
                       console.log('Debug info: ' + JSON.stringify(error.debugInfo));
                   }
               });
var color=systemService.getColor(item.gradeText);
var filteredWords=$(item.words).not($scope.stopList.get();
运行(函数(上下文){
var selectedRange=context.document.getSelection();
加载(selectedRange,“text”);
返回context.sync().then(函数(){
对于(变量i=0;i
我发现在第二个
上下文前面添加关键字
return
。sync
可以修复此问题。

谢谢您的回答,我通过以下链接了解此功能:


它可以工作,但仅适用于阵列的第一项。我在数组中有11项,但它只突出显示数组0索引中的单词。return关键字在对第一项应用样式后结束循环。这就是为什么我删除了return关键字。好吧,这是一个不同的问题,你在问题中没有提到。你刚刚请求了错误消息方面的帮助。我不得不否决这一点,尽管你链接到的堆栈答案中的建议是非常好的建议。但它没有回答您提出的问题,这是关于“未处理的拒绝属性NotLoaded:属性'items'不可用”错误的。