Javascript 用于查看消息的ThunderBird事件
我试图在Thunderbird的主窗口中显示消息之前对其进行修改。我似乎找不到1)打开/查看新邮件时会触发的事件2)修改邮件显示内容的方法 我相信我需要Javascript 用于查看消息的ThunderBird事件,javascript,thunderbird,thunderbird-addon,Javascript,Thunderbird,Thunderbird Addon,我试图在Thunderbird的主窗口中显示消息之前对其进行修改。我似乎找不到1)打开/查看新邮件时会触发的事件2)修改邮件显示内容的方法 我相信我需要chrome://messenger/content/messenger.xuloverlay,可以使用监听器,例如: window.addEventListener( "SOME MAGIC HERE", modify_message_handler, true ); 但我不确定该事件是什么,以及我将获得什么对象(消息头?),以及修改显示内容
chrome://messenger/content/messenger.xul
overlay,可以使用监听器,例如:
window.addEventListener( "SOME MAGIC HERE", modify_message_handler, true );
但我不确定该事件是什么,以及我将获得什么对象(消息头?),以及修改显示内容的容易程度
因此,问题是:
- 我有正确的套印吗
- 这可以通过事件来实现吗?如果没有,怎么做
- 如果是,需要什么事件,它传递什么对象
希望能带来一些光明;如果您已经了解了这一点,请告诉我们您学到了什么。如果您想要的是类似于在每条消息上运行的Greasemonkey脚本的内容,您应该:
窗口的加载事件
document.getElementById(“messagepane”)
检索消息窗格对象DOMContentLoaded
事件,或类似的事件,如load
,具体取决于您希望何时调用处理程序DOMContentLoaded
将为您提供Greasemonkey风格的行为event.originalTarget
是与显示的消息相对应的文档。您可以在这里应用所有常用的DOM修改技术thunderbird extension
标记
Thunderbird Extension author有许多现成的工具供您参考
编辑功能(仅更改标题或整个源代码 从菜单“message”-> “HeaderToolsLite”或消息面板中的关联菜单 整个源代码的编辑功能应与 注意,因为错误的更改可能会导致显示所有内容时出现问题 文件夹中的邮件
轻松附加在主窗口中选择的邮件
附加其他邮件的附件
附加来自5个常用目录的文件
以压缩格式附加文件和目录
添加图形界面以处理 有关“交付状态”的全球和每个帐户的首选项 通知(DSN)
有用链接:
值得注意的参考文献1:
值得注意的参考文献2:
值得注意的参考文献3:
值得注意的参考文献4:普通人类通过急需的链接为我找到了正确的道路。第一件事是添加一个
load
事件。我将以我非常原始的理解粘贴一些代码:
window.addEventListener("load", function load(event) {
window.removeEventListener("load", load, false);
myExtension.init();
}, false);
加载此脚本的覆盖时,运行init
var myExtension = {
init: function() {
var appcontent = document.getElementById("appcontent"); // browser app content
if (appcontent) {
appcontent.addEventListener("OMContentLoaded", myExtension.onPageLoad, true);
}
var messagepane = document.getElementById("messagepane"); // tunderbird message pane
if(messagepane) {
messagepane.addEventListener("load", function(event) { myExtension.onPageLoad(event); }, true);
}
},
在init
中,我添加了一个监听器,每次显示消息时都调用onPageLoad
。我实际上不使用appcontent
案例afaik
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
// we can now morph the loaded page
// doc.location is a 'Location' object
var newDat = mutateBody(doc.body.innerHTML);
doc.body.innerHTML = newDat;
aEvent.originalTarget.defaultView.addEventListener("unload", function(event) { myExtension.onPageUnload(event); }, true);
},
onPageUnload: function(aEvent) {
// No action necessary yet
}
};
doc.body.textContents
似乎是一个明显的元素,但它实际上没有保持格式(该死的HTML)-使用innerHTML
可以更好地满足我的需要。你找到了吗?@john.k.doe我没有看到,谢谢。谢谢你的指点。我会回来报告,但可能几天内不会-我现在正在处理一些任务。请查看我的答案以了解我的发现。这似乎是我需要的切入点-我会尝试(在适当的时候)并回来报告。谢谢。有关这方面的Mozilla文档可在以下位置找到:
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
// we can now morph the loaded page
// doc.location is a 'Location' object
var newDat = mutateBody(doc.body.innerHTML);
doc.body.innerHTML = newDat;
aEvent.originalTarget.defaultView.addEventListener("unload", function(event) { myExtension.onPageUnload(event); }, true);
},
onPageUnload: function(aEvent) {
// No action necessary yet
}
};