setSelectedDataAsync не работает в Office Online - PullRequest
0 голосов
/ 21 января 2019

При попытке вставить html с фоновым стилем, он не ведет себя так же, как в клиенте Office.

То, что я пытаюсь сделать, на самом деле очень просто.См. Две строки на изображении ниже: enter image description here

Я просто хочу создать фоновый div, который инкапсулирует оба и будет другого цвета.Попытка кода выглядит примерно так:

// Just to get the selected area in HTML.
Office.context.document.getSelectedDataAsync(
    Office.CoercionType.Html,
    {
       valueFormat: Office.ValueFormat.Formatted
    },
    function(a)
    {
       console.log(a.value);
    });

Эти журналы вызовов для поддержки приведенного ниже результата:

<HTML>
<HEAD></HEAD>
<BODY>
<div class="OutlineGroup"><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{df1d415b-2edd-4266-a550-6d283e1c3eea}{61}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: &quot;Segoe UI&quot;, Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 1</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;">&nbsp;</span></p></div></div><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{df1d415b-2edd-4266-a550-6d283e1c3eea}{63}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: &quot;Segoe UI&quot;, Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 2</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;">&nbsp;</span></p></div></div></div><span class="WACImageGroupContainer"></span><span class="WACImageGroupContainer"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span>
</BODY>
</HTML>

Так что теперь - я просто хочу заменить самый внешний div и поставитьстиль вокруг него.

Office.context.document.setSelectedDataAsync(`<HTML>
<HEAD></HEAD>
<BODY>
<div style="background: green !important"> **<!--most important line-->**
<div class="OutlineGroup"><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{b6a47614-e320-4a52-b55f-273b52861109}{81}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: &quot;Segoe UI&quot;, Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 1</span></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">&nbsp;this string1</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;">&nbsp;</span></p></div></div><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{b6a47614-e320-4a52-b55f-273b52861109}{83}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: &quot;Segoe UI&quot;, Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 2</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;">&nbsp;</span></p></div></div></div><span class="WACImageGroupContainer"></span><span class="WACImageGroupContainer"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span></div>
</BODY>
</HTML>`, {coercionType: Office.CoercionType.Html});
});

Если вы проверите внешний div, вы увидите, что у него теперь есть стиль.Однако это приводит к приведенному ниже результату:

enter image description here

, что неверно и не соответствует клиенту Office.

Есть ли обходные пути для этого?

Мне также удалось найти похожие жалобы здесь: https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/17898694-office-js-api-setdataasync-not-working-as-suggeste

...