Outlook加载项API是否支持事件侦听器?

时间:2016-02-12 16:22:07

标签: javascript email outlook office365 outlook-web-addins

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

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

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

Office.context.mailbox.item.body.getAsync

每当我在体内输入新信件或发送信息时,这是否会运行?我有点困惑。

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

2 个答案:

答案 0 :(得分:2)

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

值得注意的是,新的Office Web插件生成比旧的桌面插件更少侵入。实际上,以VSTO为例,人们可以访问整个Outlook对象模型,无论好坏。这是我在这个主题上写的a blog post

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

请记住,Office.js为您提供了与EWS API通信的可能性,这在Office.js API无法直接提供时非常有用。 See this link

答案 1 :(得分:0)

关于“ 无论我在体内输入新字母还是发送邮件时,都会运行此命令?

根据我的实验,即使您每秒调用Office.context.mailbox.item.body.getAsync,它也会每隔几秒钟(接近20秒)返回新的正文内容。

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

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

我想我们必须等待类似excel js api events之类的东西。