用于查看消息的ThunderBird事件

Tho*_*son 8 javascript thunderbird thunderbird-addon

我想在Thunderbird的主窗口中显示之前修改一条消息.我似乎无法找到1)打开/查看新消息时将触发的事件2)修改消息显示内容的方法.

我相信我需要chrome://messenger/content/messenger.xul叠加层,并且可以使用如下的监听器:

window.addEventListener( "SOME MAGIC HERE", modify_message_handler, true );
Run Code Online (Sandbox Code Playgroud)

但是那个事件是什么,我不确定,还有我会得到什么对象(消息标题?)以及我可以轻松修改显示的内容.

所以问题是:

  • 我有正确的叠加层吗?
  • 可以用事件来完成吗?如果没有,怎么样?
  • 如果是这样,需要什么事件以及它通过了什么对象?

Gen*_*man 10

如果你想要的是类似于每个消息上运行的Greasemonkey脚本,你应该:

  1. 等待load事件发生window.
  2. 使用检索消息窗格对象document.getElementById("messagepane").
  3. 将处理程序绑定到消息窗格的DOMContentLoaded事件或类似事件,例如load取决于您希望何时调用处理程序.DOMContentLoaded会给你一个Greasemonkey风格的行为.
  4. 在事件处理程序中,event.originalTarget是与显示的消息对应的文档.您可以在此处应用所有常用的DOM修改技术.

有关更多详细信息,请参阅文档中的此示例.


Nat*_*Fig 5

这就是你一直试图寻找尚未明确,但我会提供一个建议:这种过时的文档表明有,你可以挖掘到监听"打开"属性,它会出现在被定义的OnItemPropertyChanged事件的来源.

但是,这仅适用于文件夹,还是适用于文件夹和邮件,目前还不清楚; 并且您将需要深入挖掘以确定传入的项目对象的属性是否允许您进行更改.

希望有所启发; 如果你已经全身心投入,请告诉我们你学到了什么.