我正在尝试在消息显示在 Thunderbird 的主窗口中之前对其进行修改。我好像找不到 1) 打开/查看新消息时会触发的事件 2) 修改消息显示内容的方法。
我相信我需要 chrome://messenger/content/messenger.xul
叠加层,并且可以使用如下监听器:
window.addEventListener( "SOME MAGIC HERE", modify_message_handler, true );
但我不确定该事件是什么,以及我将获得什么对象(消息标题?)以及修改显示内容的难易程度。
所以问题是:
- 我有正确的叠加层吗?
- 这可以通过事件来完成吗?如果不是,怎么办?
- 如果需要,需要什么事件,传递什么对象?
最佳答案
如果您想要的是类似于在每条消息上运行的 Greasemonkey 脚本的东西,您应该:
- 等待
窗口
的load
事件。 - 使用
document.getElementById("messagepane")
检索消息 Pane 对象。 - 将您的处理程序绑定(bind)到消息 Pane 的
DOMContentLoaded
事件,或类似的事件,如load
,具体取决于您希望何时调用您的处理程序。DOMContentLoaded
会给你一个 Greasemonkey 风格的行为。 - 在事件处理程序中,
event.originalTarget
是显示消息对应的文档。您可以在此处应用所有常用的 DOM 修改技术。
有关详细信息,请参阅 this example来自文档。
关于javascript - 用于查看消息的 ThunderBird 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11370903/