我正在尝试将一个文件夹窗口添加到主视图(类似http://extensions.sanjer.nl/xpi/tb/contactssidebar-1.7pre.xpi)。这似乎是一个很好的工具开始,但我想添加一个事件监听器,这样每次我点击一个电子邮件,它将允许我做一些“额外的工作”从服务器检索一些数据(即基于crm系统)在电子邮件上)。我希望能够使用类似于contactssidebar的模板来学习或类似,但我的挑战是我可以通过将以下内容添加到顶部的contactsSideBar.js文件中来尝试使其工作,以便学习和测试出来
window.addEventListener("load", function load(event) {
window.removeEventListener("load", load, false);
myExtension.init();
}, false);
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);
}
},
onPageLoad: function(aEvent) {
var win = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow("mail:3pane");
var currentMsg = win.gFolderDisplay.selectedMessages[0];
var currentEmail = currentMsg.mime2DecodedAuthor.replace(/^.*</, "").replace(/>$/, "");
document.getElementById("searchInputElem").value = currentEmail;
aEvent.originalTarget.defaultView.addEventListener("unload", function(event) { myExtension.onPageUnload(event); }, true);
},
onPageUnload: function(aEvent) {
// No action necessary yet
}
};
但是我似乎无法在DOM中找到元素
document.getElementById("searchInputElem")
它为空
我想我必须访问其他窗格或窗口,但不确定。此元素位于chrome \ content \ contactssidebar \ search.xml Jar文件中 我用过(contactssidebar)。我没有写它,只是试图能够更新元素
有人知道怎么做吗?