我正在尝试制作一个扩展程序,将下载管理器窗口作为侧边栏或其他方式打开,而不是新窗口。
为此,我必须首先在“保存对话框”中停止“保存”按钮,将下载管理器打开为新窗口。
然后,我必须将按钮的oncommand
属性设置为我的自定义函数。
我认为可以做到:(请参阅编辑,而不是此内容)
(如果我在“保存对话框”中有“保存”按钮的ID,我可以
removeAttribute("oncommand")
然后setAttribute("oncommand", "some_other_function");
尽管如此,我还不清楚更新的属性是否会持续。如果通过openDialog
电话(内部)打开“保存”对话框,则每次都会显示一个新对话框。
编辑:
我认为可以通过XPCOM接口实现。 我有什么可以:
答案 0 :(得分: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。
(我无法找到MDN中记录dl-start
的位置。有人可以指出它吗?)
2 - 我只需将首选项browser.download.manager.showWhenStarting
设置为false
即可阻止Firefox在新窗口中打开自己的下载管理器。