Ms office 如何突出显示选定范围内的特定单词?
基本上,我必须突出显示数组中接收到的单词。在控制台上,我在第一次迭代后收到以下错误: 未处理的拒绝属性NotLoaded:属性“items”不可用。在读取属性值之前,对包含对象调用load方法,并对关联的请求上下文调用“context.sync()” 代码如下: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();
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'不可用”错误的。