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 - Firefox が独自のダウンロード マネージャーを新しいウィンドウで開かないように設定するbrowser.download.manager.showWhenStarting必要がありました。false

于 2013-01-10T16:07:41.443 に答える