iPad上的insertHtml插入空内容控件

时间:2019-02-08 12:11:29

标签: javascript ms-word office-js

我试图将html插入到office365 word文档中,并使用insertHtml方法。 insertHtml插入一个空的内容控件(显示占位符而不是我的html)。

可以在iPad iOS 11.3浏览器Safari和Chrome上重现问题。 iPad和其他设备上的本机单词应用程序(office365单词和本机单词)正确插入。

代码示例:

 Word.run(async context => {
  const currentRange = context.document.getSelection();
  const control = currentRange.insertContentControl();
  control.insertHtml(
    '<b>Insert any text to test</b>',
    Word.InsertLocation.replace,
  );
  await context.sync().catch(console.error);
})

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

尝试返回一些值。

Word.run(async context => {
  const currentRange = context.document.getSelection();
  const control = currentRange.insertContentControl();
  control.insertHtml(
    '<b>Insert any text to test</b>',
    Word.InsertLocation.replace,
  );
  await context.sync().catch(console.error);
  return false;
})

答案 1 :(得分:0)

当您说“可以在iPad iOS 11.3浏览器Safari和Chrome上复制”时,台式机或Mac上的Chrome怎么样?如果它始终在Word Online上运行,则很可能只是insertContentControl API的Word Online实现中的一个错误。如果是这样,如果您还没有的话,建议您在https://github.com/officedev/office-js/issues

上提交错误。

从表面上看,您编写的代码似乎足够正确。如果要使其更好一点,最好在Word.run的外部粘贴“ .catch”。这对您的特定情况没有什么影响,因为无论如何您都是在批处理的最后一行调用context.sync(),但是在某些情况下确实可以。因此,作为最佳做法,请用鱼钩保护整个.run,而不是sync

所以:这可能是平台错误。如果是这样,请在上面的链接中将其归档。