Dom 雷鸟插件折叠窗格

Dom 雷鸟插件折叠窗格,dom,xul,addeventlistener,thunderbird-addon,Dom,Xul,Addeventlistener,Thunderbird Addon,我正在尝试将folderpane添加到主视图中(类似于)。这似乎提供了一个很好的工具开始,但我想添加一个事件侦听器,这样每次我点击一封电子邮件,它将允许我做一些“额外的工作”,从服务器检索一些数据(即基于电子邮件的crm系统)。我希望能够使用像contactssidebar这样的东西作为模板来学习或类似的东西,但我的挑战是,我可以尝试通过在顶部的contactssidebar.js文件中添加以下内容来实现这一点,从中学习并测试它 window.addEventListener("load",

我正在尝试将folderpane添加到主视图中(类似于)。这似乎提供了一个很好的工具开始,但我想添加一个事件侦听器,这样每次我点击一封电子邮件,它将允许我做一些“额外的工作”,从服务器检索一些数据(即基于电子邮件的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
    }
  };
它是空的

我想我必须访问其他窗格或窗口,但不确定。该元素位于chrome\content\contactssidebar\search.xml Jar文件中 我用过的(contactssidebar)。我没有写它,只是想更新一个元素


有人知道怎么做吗

您必须在正确的DOM中搜索。看看您正在修改的扩展,看看它是如何引用该元素的。顺便说一句:如果您链接到了一个加载项,该加载项托管在Mozilla加载项上,或者托管在Github上,我可能已经完成了安装并查看了一下。事实上,我必须首先检查整个加载项,看看它是否在做任何我不想在我的机器上发生的事情(即没有恶意)。换句话说,开始帮助你的工作量太大了。
  document.getElementById("searchInputElem")