我想在Thunderbird的主窗口中显示之前修改一条消息.我似乎无法找到1)打开/查看新消息时将触发的事件2)修改消息显示内容的方法.
我相信我需要chrome://messenger/content/messenger.xul overlay,并且可以使用如下的监听器:
window.addEventListener( "SOME MAGIC HERE",modify_message_handler,true );
但是那个事件是什么,我不确定,还有我会得到什么对象(消息标题?)以及我可以轻松修改显示的内容.
所以问题是:
>我有正确的叠加层吗?
>这可以用事件来完成吗?如果没有,怎么样?
>如果是这样,需要什么事件以及它通过了什么对象?
解决方法
如果你想要的是类似于每个消息上运行的Greasemonkey脚本,你应该:
>等待窗口的加载事件.
>使用document.getElementById(“messagepane”)检索消息窗格对象.
>将处理程序绑定到消息窗格的DOMContentLoaded事件或类似的事件(如加载),具体取决于您希望何时调用处理程序. DOMContentLoaded将为您提供Greasemonkey风格的行为.
>在事件处理程序中,event.originalTarget是与显示的消息对应的文档.您可以在此处应用所有常用的DOM修改技术.
有关更多详细信息,请参阅文档中的this example.