Я работаю над сайтом, использующим API-интерфейсы Microsoft Office JavaScript. У меня есть некоторые функции, работающие, чтобы выбрать диапазон для прокрутки до определенной позиции в документе. Это работает должным образом в Office для Интернета, но в Office для Mac я получаю следующую ошибку при вызове context.sync().then()
:
Необработанный отказ от обещания: RichApi. Ошибка: ItemNotFound
Я не могу найти какую-либо документацию по этой конкретной ошибке, и я не уверен, как решить, что я могу делать неправильно. Что мне не хватает? Как я уже сказал, это работает в веб-интерфейсе.
Вот минимальный пример кода, который демонстрирует проблему:
function UI(context) {
this.context = context;
}
UI.prototype.initialize = function() {
var paragraphs = this.context.document.body.paragraphs;
this.context.load(paragraphs);
document.querySelector('button').addEventListener('click', () => {
this.context.sync().then(() => {
this.goToRange(paragraphs.items[0]);
});
});
};
UI.prototype.goToRange = function(range) {
range.select();
this.context.sync();
};
document.addEventListener('DOMContentLoaded', () => {
Office.onReady(() => {
Word.run(context => {
return context.sync().then(() => {
new UI(context).initialize();
});
});
});
});
Единственное, о чем я могу думать, это то, что, возможно, ссылка на клиентский объект абзаца в некотором смысле становится «устаревшей», возможно, из-за некоторых ограничений ресурсов, которые ниже в приложении Mac, чем в онлайн-интерфейсе? (Это было бы нелогично для меня, но это единственное, что приходит на ум.)