【发布时间】:2015-07-24 16:50:31
【问题描述】:
我为 Thunderbird 开发了一个无需重启的插件。激活插件后,我需要在撰写窗口中添加一些 UI 元素。
到目前为止我所做的是:
在启动时,通过nsIWindowWatcher在windows上添加观察者
在关机时,移除窗口观察者,并将变量 X 设置为 true
当该观察者观察到 domwindowopened 事件时,为“compose-window-init”事件的打开窗口添加一个事件监听器(当它观察到 domwindowclose 时,它会移除该事件监听器)
- 当这个 compose-window-init 事件被触发时,检查窗口的 document.location,如果它对应于一个消息编写器:
- 添加 UI 元素,
- 如果 X 设置为 true,则删除 UI 元素并删除 eventListener
这很好用(当插件被激活时,UI 被添加到撰写消息中,并且在停用时被移除)除了以下内容:当插件被停用然后再次激活时,第一条撰写消息不提供 UI 元素。 UI 被添加到另一个,但不是第一个。
知道为什么以及如何解决这个问题吗?
谢谢
【问题讨论】: