Word JS API выдает «RichApi.Error: невозможно прочитать свойство 'ha' со значением NULL" на insertFileFromBase64 только в OfficeOnline Only - PullRequest
0 голосов
/ 26 марта 2020

При вызове insertFileFromBase64 в слове online (сборка 16.0.12719.32656) при попытке вставить некоторые документы будет выдана следующая ошибка:

Полный объект ошибки: «RichApi.Error: Невозможно прочитать свойство 'ha' null в новом c (https://appsforoffice.microsoft.com/lib/1/hosted/word-web-16.00.js: 24: 293287 ) в bfprocessRequestExecutorResponseMessage (https://appsforoffice.microsoft.com/lib/1/hosted/word-web-16.00.js: 24: 353940 ) в https://appsforoffice.microsoft.com/lib/1/hosted/word-web-16.00.js: 24: 352045 «.

Фактическое содержимое документа вставлено, но любые последующие вызовы insertFileFromBase64 выдают« Действие не поддерживается Word в браузере », и содержимое документа не вставляется.

Одни и те же документы могут быть вставлены с использованием одной и той же логики c в любой клиент Word для настольных компьютеров.

Мне интересно, что отличается в слове онлайн, которое может вызвать появление этой ошибки, и как его следует обрабатывать, чтобы предотвратить будущие вызовы от вставки содержимого документа?

Вот код, который я использую для вставки документа:

Word.run(async (context: Word.RequestContext) => {
        const sections = context.document.sections;
        sections.load();
        await context.sync();
        sections.items.forEach(function(section) {
          // Clear the Body.
          section.body.clear();

          // Clear any Headers.
          section.getHeader('Primary').clear();
          section.getHeader('FirstPage').clear();
          section.getHeader('EvenPages').clear();

          // Clear any Footers.
          section.getFooter('Primary').clear();
          section.getFooter('FirstPage').clear();
          section.getFooter('EvenPages').clear();
        });
        await context.sync();
        context.document.body.insertFileFromBase64(base64EncodedDocument, 'Start');
        return context.sync();
      }).catch(e => {
        console.log(e.message);
      });

Вот пример o f документ, который выдает эту ошибку при вставке в офис онлайн: https://www.dropbox.com/s/k25ppswzxanb7ez/ASP%20clauses%20non%20admin%20test.docx?dl=0

Вот полный объект e.debugInfo: e.debugInfo

1 Ответ

0 голосов
/ 26 марта 2020

Мы не поддерживаем все виды ContentControls сейчас в WordOnline. И если в документе есть какие-либо неподдерживаемые ContentControls, мы заблокируем последний файл вставки из операций base64. Вот почему вы не можете выполнить последующий insertFileFromBase64, сообщение об ошибке является ожидаемым. Мы можем постепенно поддерживать больше типов ContentControl, но у меня пока нет четкой даты.

А что касается Невозможно прочитать свойство 'ha', равное нулю , это неправильно, мы посмотрим, но, похоже, пока оно не влияет на последние вызовы API, и это не связано с проблемой, почему вы не можете выполнить последующий insertFileFromBase64, как я описал выше.

Благодарим Вас за сообщение о проблеме и приносим извинения за доставленные неудобства.
Сообщите нам, если у вас есть дополнительные вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...