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 的问题无关,正如我上面描述的那样。
感谢您向我们报告问题,对于给我们带来的不便,我们深表歉意。
如果您还有其他问题,请告诉我们。
在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 的问题无关,正如我上面描述的那样。
感谢您向我们报告问题,对于给我们带来的不便,我们深表歉意。
如果您还有其他问题,请告诉我们。