Thunderbird插件FolderPane

时间:2016-02-23 16:00:05

标签: dom xul addeventlistener thunderbird-addon

我正在尝试将一个文件夹窗口添加到主视图(类似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)。我没有写它,只是试图能够更新元素

有人知道怎么做吗?

0 个答案:

没有答案