如何使用 office.js API 在 Outlook 邮件中 select 文本

How to select text in an Outlook mail using the office.js API

我正在实施一个 Web 应用程序,帮助用户找到特定单词的替代词。

人们访问此数据的一种方式应该是通过 Office 加载项(使用 Office.js)按下按钮时 select 个关键字,让用户选择一个替代项(由 API 我的 Webapp),并在第二次按下按钮时替换 selection 中的内容。将其视为用于特定目的的自定义拼写检查器/迷你 Grammarly。

所以第一件事是,我需要在 document/mail 中 select 某个文本 area/range(基本上模拟 Ctrl-F)。遗憾的是,我没有在 Outlook 加载项的文档中找到这个特定的 API-调用。只有 Body.getAsync 和 Body.setAsync 但如果可能的话,我不想替换整个文本。

仅供参考:对于 MS Word,同样可以通过以下方式轻松实现:

      Word.run(function (context) {
        const ranges = context.document.body.search('office.js is stupid')
        const range = ranges.getFirst()
        range.select() 
        const alternative = 'office.js is awesome' //Faked user interaction
        range.insertHtml(alternative, 'Replace')
        })

Outlook 的等效项是什么?

仅供参考:我检查了多个来源,但令我最失望的是我没有在这里找到答案:https://docs.microsoft.com/en-us/javascript/api/outlook/office.body?view=outlook-js-preview 另外,我认为 Grammarly 没有在 Microsoft AppSource O365 Store 中提供 Outlook 插件是一个不好的迹象。

Edit: Well, not looking good.

编辑 2:也许不是那么重要,但有人知道为什么没有:

window.Outlook.run(async context =>{
    //[...]
    await context.sync()
  }
)

今天这是不可能的。我们在 user-voice 页面上跟踪 Outlook 加载项功能请求。

您想要的功能似乎已经被其他人请求过。请点赞the existing request。我们在规划过程中会考虑用户语音的功能请求。