【发布时间】:2017-02-25 07:54:47
【问题描述】:
我制作了一个测试 office.js Outlook 加载项,它使用 setasync 和强制类型的 HTML 将格式化的 HTML 注入 Office.context.mailitem.body。一切正常,但 1 月中旬突然出现了编辑日历邀请的问题。 UI 会更新,但在发送邀请时,文本会被删除。从日历中打开日历邀请时,文本为空白。一些观察:
- 编辑电子邮件正文仍然有效。该问题仅发生在日历邀请中。
- 如果您在加载项插入其 HTML 后手动添加文本,则邀请有效。如果您先添加文本,然后加载项添加其 HTML,但您什么都不做,则邀请文本只是原始文本 - 没有 HTML。它的行为就像 setasync 更新了 UI,但没有设置某种内部脏标志,并且文本被空白。
- 这只发生在 Outlook 2013 中。Outlook 2016 上的同一个电子邮件帐户有效。
- 这发生在我们的工作电子邮件上,我认为它有一个 Office Online 后端,但在我的天蓝色测试租户上没有。
- 仅将强制类型设置为文本的文本邀请不会出现此问题。
-
插入的 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("."); } ); (你可能想插入一些不那么干扰的东西,比如空格)