Javascript 在Thunderbirds帐户设置对话框的帐户设置树中添加节点

Javascript 在Thunderbirds帐户设置对话框的帐户设置树中添加节点,javascript,xul,thunderbird,thunderbird-addon,Javascript,Xul,Thunderbird,Thunderbird Addon,我正在开发一个Thunderbird附加组件,其中我希望向帐户管理器中的每个邮件帐户添加一个节点(当用户单击工具->帐户设置时打开)。此节点应显示一个包含帐户其他设置的面板 我已经看到这个对话框中的树不是使用XUL而是使用JavaScript。所以我对JavaScript文件做了一些更改,但是如果明天有新版本出现,那么我的插件将出现问题。因此,我需要将节点添加为XUL覆盖,但这是不可能的。您不能使用XUL覆盖来覆盖动态构建的内容。但幸运的是,客户经理是可显式扩展的。甚至连你的案子都没有。简而言之

我正在开发一个Thunderbird附加组件,其中我希望向帐户管理器中的每个邮件帐户添加一个节点(当用户单击工具->帐户设置时打开)。此节点应显示一个包含帐户其他设置的面板


我已经看到这个对话框中的树不是使用XUL而是使用JavaScript。所以我对JavaScript文件做了一些更改,但是如果明天有新版本出现,那么我的插件将出现问题。因此,我需要将节点添加为XUL覆盖,但这是不可能的。

您不能使用XUL覆盖来覆盖动态构建的内容。但幸运的是,客户经理是可显式扩展的。甚至连你的案子都没有。简而言之,您需要创建一个XPCOM组件并将其注册到
mailnews accountmanager extensions
类别中。然后,帐户管理器将加载您的组件,并为每个帐户调用
showPanel()
方法,以确定您是否希望为此帐户显示面板。您需要适当设置
chromePackageName
name
属性,面板将从chrome://chromePackageName/content/am-name.xul 和来自的面板名称chrome://chromePackageName/locale/am-name.properties. 请注意,从Thunderbird 4 XPCOM组件开始。

谢谢您的Wladimir palant提供的ans,我将尝试这些方法。您好Wladimir palant我不知道如何实现您的建议。我可以得到任何插件的名称做同样的。谢谢你,罗希特Jankar@Rohit:加载项使用这种方法,它几乎是一个客户管理器面板,没有其他功能。其XPCOM组件已过时,但是,有关所需调整的说明,请参阅。@Rohit:是另一个组件,但它更复杂。好的一面是,它的XPCOM组件(
components/enigprefs service.js
)是最新的,可以与Thunderbird 6一起使用。嗨,瓦迪米尔·帕兰特,我知道了如何在帐户设置中添加面板,我还有一个问题想添加节点它帐户是gmail的,即a@gmail.com将节点设置为“我的设置”但是b@yahoo.com将不会有这个节点,你能给我一些想法如何做到这一点。