0

API 1.4を使用してOutlookアドインを作成していて、brタグをOutlook 2016コンポーザー本体に追加しようとしています。setAsync経由でOutlookコンポーザー本体にbrタグを追加する方法は?

ただし、入力を開始するとすぐに、ドキュメントが再フォーマットされ、要素が削除されます。

以下は、1秒のポーリング間隔で呼び出される実装です。私が知る限り、DOMを観察するためのより良い方法はありません。

Office.context.mailbox.item.body.getAsync(
 
    Office.CoercionType.Html, { 
 
    asyncContext: "Body" 
 
    }, 
 
    function(asyncResult) { 
 
    // DOMParser 
 
    var doc = document.implementation.createHTMLDocument("document"); 
 
    doc.documentElement.innerHtml = asyncResult.value; 
 

 
    // Append <br> if not found 
 
    var isModified = false; 
 
    var $html = $(doc.documentElement); 
 
    var $body = $html.find("body"); 
 
    if (!!$body.find("br[id*='unique-identifier']").length) { 
 
     $body.append("<br id='unique-identifier'>"); 
 
     isModified = true; 
 
    } 
 

 
    // Set if <br> was not found 
 
    if (isModified) { 
 
     Office.context.mailbox.item.body.setAsync(
 
     $body.html(), { 
 
      coercionType: Office.CoercionType.Html 
 
     } 
 
     function(asyncResult) {} 
 
    ) 
 
    } 
 
    } 
 
);

その後getAsync入力を始めるまで、それが削除されるとsetAsyncが再び呼び出されbrタグを示しています。これは、setAsyncがカーソルをコンポーザーの先頭にジャンプさせ、ユーザーが流動的に入力するのを妨害するため、迷惑です。この場合、brタグの性質上、prependまたはsetSelectedDataAsyncを使用できません。

asyncResult値に基づいてプレーンHTMLからWord Docに変換することで再フォーマットが行われると想定していますが、これをどのように考慮するかわかりません。

NB:これは、WordドキュメントとHTMLの間で変換しませんが、x_classようidと他の属性の接頭辞ず、周りにジャンプするカーソルを引き起こしOWAからも異なっています。

+0


タグのdivまたはspanを模倣しようとしましたか?これも削除されますか: "

 
"? –

+0

スタイリングのdivと が動作しますが、空のdivは動作しません。 Outlookで「有効」とみなされるものには一定の制限がありますか? – SirTophamHatt

+0

[documentation](https://dev.outlook.com/reference/add-ins/Body.html)は、HTMLタグの使用を制限しません。空のタグ(スタンドアロンのbrまたは空のdiv)の問題は、本文コンテンツの内部Outlook最適化だけです。いくつかの値を使用すると、タグは削除されません。少なくともあなたの問題は解決していますか? –

答えて

0

電子メール本文にbr要素を表示するプロトタイプを作成しました。以下のコードを試すことができます:

Office.initialize = function() { 
    $(document).ready(function() { 
     Office.context.mailbox.item.body.setAsync("<span>begin</span><br id='unique-identifier' /><span>end</span>", {coercionType: Office.CoercionType.Html}); 
    } 
} 

実行後、開始点と終了点の間にbrがあります。詳細については、 https://dev.outlook.com/reference/add-ins/Body.html#setAsyncをご覧ください。

関連する問題