1

我正在开发 TB 扩展。我已在“来自、主题、至”字段下方的 messagePane 中添加了字段。所以我需要正确更新字段值。我从 msgHdr 获得价值。我目前的方法是监听 messagePane 文档的“加载”事件。当在 TB 中只打开一条消息时,它工作正常。但是如果有多个打开的消息,那么每个消息窗口都会获得相同的字段值,因为每个窗口都会触发最后加载消息的“加载”事件。这是错误。当我收到加载事件时,如何确定窗口中打开的消息的 msgHdr?它存储在某个地方吗?Windows 是否有任何身份信息,如句柄、uri 或其他内容?为什么 DOM 检查器只显示我的字段的一个 DOM 节点,而它存在于每个 messagePane 中?抱歉有一袋问题,

谢谢。

4

1 回答 1

3

消息窗口具有全局变量 gMessageDisplay,它具有 displayMessage 属性。displayMessage 是当前显示消息的nsIMsgDBHdr。

为了在显示新消息时获取通知,我建议向 gMessageListeners 添加一个侦听器:

gMessageListeners.push({
  onStartHeaders: function () {},
  onEndHeaders: function () {},
  onEndAttachments: function () {},
  onBeforeShowHeaderPane: function () {}
});

在 onStartHeaders 或 onEndHeaders 中采取行动。

于 2011-02-23T18:55:38.767 回答