【问题标题】:Outlook add-in body setasync UI updates but result is blankOutlook 加载项正文 setasync UI 更新但结果为空白
【发布时间】:2017-02-25 07:54:47
【问题描述】:

我制作了一个测试 office.js Outlook 加载项,它使用 setasync 和强制类型的 HTML 将格式化的 HTML 注入 Office.context.mailitem.body。一切正常,但 1 月中旬突然出现了编辑日历邀请的问题。 UI 会更新,但在发送邀请时,文本会被删除。从日历中打开日历邀请时,文本为空白。一些观察:

  1. 编辑电子邮件正文仍然有效。该问题仅发生在日历邀请中。
  2. 如果您在加载项插入其 HTML 后手动添加文本,则邀请有效。如果您先添加文本,然后加载项添加其 HTML,但您什么都不做,则邀请文本只是原始文本 - 没有 HTML。它的行为就像 setasync 更新了 UI,但没有设置某种内部脏标志,并且文本被空白。
  3. 这只发生在 Outlook 2013 中。Outlook 2016 上的同一个电子邮件帐户有效。
  4. 这发生在我们的工作电子邮件上,我认为它有一个 Office Online 后端,但在我的天蓝色测试租户上没有。
  5. 仅将强制类型设置为文本的文本邀请不会出现此问题。
  6. 插入的 HTML 有多简单并不重要。仅插入以下简单的 HTML 会导致问题:

    <b>this is bold text</b>
    

有什么想法会发生什么吗?

提前致谢。

【问题讨论】:

  • 嗨,Carbo,我们正在调查这个
  • 这是此 KB 的回归:support.microsoft.com/en-us/help/3141466/… 如果您卸载它,问题将停止重现。我们正在调查未来 KB 的修复程序。
  • 所以这确实是一个需要修复的错误。与此同时,我正在玩这个,作为一种解决方法,我发现如果你在执行 SetBody 之后弄脏了正文,那么消息将正确发送。您可以通过键入空格手动执行此操作,也可以在实际调用中执行此操作,例如: Office.context.mailbox.item.body.setAsync ( "tim test", { "coercionType" : "html" }, 函数 (asyncResult) { Office.context.mailbox.item.body.prependAsync("."); } ); (你可能想插入一些不那么干扰的东西,比如空格)

标签: outlook-addin office-js


【解决方案1】:

所以这确实是一个需要修复的错误。与此同时,我正在玩这个,作为一种解决方法,我发现如果你在执行 SetBody 之后弄脏了正文,那么消息将正确发送。

您可以通过键入空格手动执行此操作,也可以在实际调用中执行此操作,例如:

Office.context.mailbox.item.body.setAsync
(
    "<B>tim test</b>",
    {
        "coercionType" : "html"
    },
    function (asyncResult)
    {
        Office.context.mailbox.item.body.prependAsync(".");
    }
);

(你可能想插入一些不那么干扰的东西,比如空格)

【讨论】:

    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    相关资源
    最近更新 更多