Firefox addon 如何覆盖默认的下载/保存按钮处理程序?

Firefox addon 如何覆盖默认的下载/保存按钮处理程序?,firefox-addon,Firefox Addon,我正在尝试做一个扩展,将下载管理器窗口作为边栏或其他方式打开,而不是一个新窗口 为此,我必须首先停止“保存对话框”中的“保存”按钮,使其无法作为新窗口打开下载管理器 然后,我必须将按钮的oncommand属性设置为自定义函数 我认为可以做到的:(请看编辑,而不是这个) (如果我有“保存对话框”中“保存”按钮的id,我可以 删除属性(“oncommand”)然后设置属性(“oncommand”、“some\u other\u function”); 不过,我非常不清楚更新的属性是否会持续。如果

我正在尝试做一个扩展,将下载管理器窗口作为边栏或其他方式打开,而不是一个新窗口

  • 为此,我必须首先停止“保存对话框”中的“保存”按钮,使其无法作为新窗口打开下载管理器

  • 然后,我必须将按钮的
    oncommand
    属性设置为自定义函数

我认为可以做到的:(请看编辑,而不是这个)

(如果我有“保存对话框”中“保存”按钮的id,我可以
删除属性(“oncommand”)
然后
设置属性(“oncommand”、“some\u other\u function”);

不过,我非常不清楚更新的属性是否会持续。如果通过
openDialog
调用(内部)打开保存对话框,每次都会出现一个新的对话框

  • 这是正确的方法吗?那么,“保存”按钮的id是什么?(还有,我如何知道“保存对话框”何时打开?即“保存”按钮何时有任何意义。)
  • 否则怎么办呢?)
编辑:

我认为通过XPCOM接口是可能的有什么方法可以让我

  • 知道何时启动下载/保存
  • 是否可以访问在上述操作之后打开的“保存”对话框

1-我可以通过XPCOM界面判断何时开始下载

var observerService = Components.classes["@mozilla.org/observer-service;1"]
                      .getService(Components.interfaces.nsIObserverService);
observerService.addObserver(this, "dl-start", false);
dl start
是必需的主题id。 (我找不到MDN中记录的
dl start
的位置。有人能指出吗?)

2-我只需将首选项
browser.download.manager.show设置为
false
即可阻止Firefox在新窗口中打开自己的下载管理器