insertHtml на IPad вставляет пустой контроль содержимого - PullRequest
0 голосов
/ 08 февраля 2019

Я пытался вставить html в текстовый документ office365 и использовал метод 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 голосов
/ 16 февраля 2019

Когда вы говорите: «Можно воспроизвести на iPad браузер iOS 11.3 Safari и Chrome» - как быть с Chrome на настольном компьютере или Mac?Если это всегда в Word Online, это может быть просто ошибкой в ​​реализации Word Online API insertContentControl.Если это так, если вы этого еще не сделали, я бы посоветовал вам сообщить об ошибке на https://github.com/officedev/office-js/issues

. По номиналу код, который вы написали, кажется достаточно правильным.Если вы хотите сделать это немного лучше, вам лучше прикрепить «.catch» на внешней стороне Word.run.Это не имеет значения в вашем конкретном случае здесь, так как вы все равно звоните context.sync() в последней строке пакета, но могут быть случаи, когда это происходит.Таким образом, в качестве лучшей практики, защитите все ваше .run с помощью улова, а не просто sync.

Итак: это может быть ошибка платформы.Если это так, пожалуйста, отправьте его по ссылке выше.

0 голосов
/ 12 февраля 2019

Попробуйте вернуть какое-то значение.

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