Generic Human 通过急需的链接让我走上了正确的道路。首先是添加一个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
效果更好地满足我的需求。