Word JS Api Throws “RichApi.Error: Cannot read property 'ha' of null" on insertFileFromBase64 in OfficeOnline Only

Word JS Api Throws “RichApi.Error: Cannot read property 'ha' of null" on insertFileFromBase64 in OfficeOnline Only

在word online(build 16.0.12719.32656)中调用insertFileFromBase64时,插入部分文档会报如下错误:

完整的错误对象:“RichApi.Error:无法读取 null 的 属性 'ha' 在新 c (https://appsforoffice.microsoft.com/lib/1/hosted/word-web-16.00.js:24:293287) 在 b.f.processRequestExecutorResponseMessage (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 不支持该操作”,并且不会插入文档内容。

可以在任何 word 桌面客户端中使用相同的逻辑插入相同的文档。

我想知道 word online 中有什么不同可能导致抛出此错误,以及应该如何处理它以防止将来的调用无法插入文档内容?

这是我用来插入文档的代码:

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);
      });

以下是在在线办公室中插入时抛出此错误的文档示例:https://www.dropbox.com/s/k25ppswzxanb7ez/ASP%20clauses%20non%20admin%20test.docx?dl=0

这是完整的 e.debugInfo 对象: e.debugInfo

我们现在不支持 WordOnline 上的所有类型的 ContentControl。如果文档中有任何不受支持的 ContentControls,我们将阻止后面的插入文件进行 base64 操作。这就是为什么您不能执行后续的 insertFileFromBase64,错误消息是预期的。我们可能会逐渐支持更多的 ContentControl 类型,但我还没有明确的日期。

还有关于Cannot read 属性 'ha' of null,不对,我们再看看,不过目前看来不会影响后面的 API 调用,并且它与为什么你不能执行后续 insertFileFromBase64 的问题无关,正如我上面描述的那样。

感谢您向我们报告问题,对于给我们带来的不便,我们深表歉意。
如果您还有其他问题,请告诉我们。