2

我正计划编写一个 Outlook 加载项,我想知道是否有办法监听事件,例如“发送按钮”。在实践中,我想在用户按下发送按钮时操纵正文,甚至在发送电子邮件之前。

从我所见,唯一的方法是创建一个按钮,例如“操纵”,并在点击时附加一个事件。这是可行的,但是如果您每次发送电子邮件都必须这样做,那就很烦人了。

此外,Outlook 如何运行加载项?在撰写模式下,如果我确实有:

Office.context.mailbox.item.body.getAsync

每当我在正文中键入新字母或发送消息时都会运行此程序吗?我有点困惑。

可能有点重复。再次感谢。

4

2 回答 2

2

您不能在 iFrame 的父窗口(加载项所在的位置)的 DOM 元素上附加侦听器。因此,您无法破解 Outlook Web Access 按钮的行为。

需要注意的是,新的 Office Web 插件生成比旧桌面插件的侵入性要小。事实上,以 VSTO 为例,无论好坏,人们都可以访问整个 Outlook 对象模型。这是我写的关于这个主题的博客文章。

您描述的解决方案似乎是做您想做的事情的合适方法。此外,让我强调一下,Web 插件框架不允许您在未经用户同意的情况下更改电子邮件的内容,这是一件好事。

请记住,Office.js 为您提供了与 EWS API 进行通信的可能性,当某些内容不能直接从 Office.js API 获得时,这非常有用。请参阅此链接

于 2016-02-12T18:55:06.470 回答
1

关于“每当我在正文中键入新字母或发送消息时都会运行吗?

通过我的实验,它会每隔几秒(接近 20 秒)返回新的正文内容,即使你每秒调用 Office.context.mailbox.item.body.getAsync 也是如此。

我不知道为什么存在这种刷新间隔,它没有记录 AFAIK,以及为什么它没有像 VSTO 加载项中那样在每个字母中刷新。

我发现让它实时刷新的唯一(奇怪)方法是用户按下任务窗格。

我想我们将不得不等待诸如excel js api events 之类的东西。

于 2019-03-04T07:25:16.597 回答