0

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

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

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

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

(如果我在“保存对话框”中有“保存”按钮的 ID,我可以 removeAttribute("oncommand")然后setAttribute("oncommand", "some_other_function");

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

  • 这是正确的做法吗?那么,“保存”按钮的 ID 是什么?(另外,我怎么知道“保存对话框”何时打开?那是保存按钮有任何意义的时候。)
  • 还能怎么办?)

编辑 :

我认为可以通过 XPCOM 接口实现。有什么办法可以

  • 知道何时开始下载/保存?
  • 可以访问在上述操作之后打开的“保存”对话框吗?
4

1 回答 1

1

1 -我可以使用nsiDownloadService XPCOM 接口判断何时开始下载。

var observerService = Components.classes["@mozilla.org/observer-service;1"]
                      .getService(Components.interfaces.nsIObserverService);
observerService.addObserver(this, "dl-start", false);

dl-start是必需的主题 ID。(我找不到dl-startMDN 中记录的位置。有人可以指出吗?)

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

于 2013-01-10T16:07:41.443 回答