当在线中使用单词调用insertFileFromBase64(内部版本16.0.12719.32656)时,尝试插入某些文档时将引发以下错误:
完整错误对象:“ 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.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);
});
以下是在在线插入Office时引发此错误的文档示例:https://www.dropbox.com/s/k25ppswzxanb7ez/ASP%20clauses%20non%20admin%20test.docx?dl=0
这里是完整的e.debugInfo对象:e.debugInfo
我们现在不支持ExcelOnline上的所有ContentControl。并且,如果文档中存在不受支持的ContentControl,我们将阻止base64操作中的后一个插入文件。这就是为什么您不能执行后续的insertFileFromBase64的原因,错误消息是预期的错误消息。我们可能会逐渐支持更多的ContentControl类型,但我还没有明确的日期。
而且关于无法读取null的属性'ha'为null是不正确的,我们来看一下,但是到目前为止,它似乎并不影响后面的API调用,并且与您为什么要这么做的问题无关如上文所述,无法执行后续的insertFileFromBase64。
感谢您为我们报告此问题,不便之处,敬请原谅。如果您还有其他问题,请告诉我们。