2011-07-26 14 views
1

ユーザーが特定の種類のファイルをダウンロードした場合(たとえば.doc)、unknownContentType Firefoxダイアログで保存して開くことに加えて、もう1つの項目(可能な操作)を表示する必要があります。unknownContentTypeダイアログにもう1つのアクションを追加するにはどうすればいいですか?

私はそれをどのように行うことができますか?

Upd。 FlashGotのアドオンのソースを見て、私は次抽出しました:

にchrome.manifest

overlay chrome://mozapps/content/downloads/unknownContentType.xul chrome://flashgot/content/DMOverlayFx.xul 
overlay chrome://global/content/nsHelperAppDlg.xul chrome://flashgot/content/DMOverlayMoz.xul 

なぜ彼らは2つのオーバーレイを持っていますか?秒は何ですか?そのユーザーが自分のオプションを選択したことを理解する方法は?

DMOverlayFx.xul

<?xml version="1.0" encoding="UTF-8"?> 
<overlay id="DMOverlayFF" 
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 

<script type="application/x-javascript" src="Common.js"/> 
<script type="application/x-javascript" src="DMOverlay.js"/> 

    <radiogroup id="mode" > 
     <vbox insertbefore="save" id="synoextcontainer" flex="1"> 
      <hbox flex="1"> 
     <radio id="synoext-dmradio" label="Download with Synology NAS" /> 

      </hbox> 
     </vbox> 
    </radiogroup> 
</overlay> 

DMOverlayMoz.xul

<?xml version="1.0" encoding="UTF-8"?> 
<overlay id="DMOverlayMoz" 
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 

<script type="application/x-javascript" src="Common.js"/> 
<script type="application/x-javascript" src="DMOverlay.js"/> 

    <radiogroup id="mode" > 
     <hbox position="3" > 
     <radio id="synoext-dmradio" label="Download with Synology NAS"/> 

    </hbox> 
    </radiogroup> 

</overlay> 

答えて

1

オーバーレイする重要なファイルがunknownContentType.xulです。ここにある例はhttp://code.google.com/p/firedownload/source/browse/chrome/content/unknownContentType-overlay.xulです。ダイアログボックスに新しいチェックボックスが追加されますが、同じ方法を使用して新しいラジオボタンを追加することができます。ラジオボタンの標準処理をオーバーライドすることができる新しいJSファイルをオーバーレイに含めたい(この例ではunknownContentType-overlay.jsなど)。新しいオプションを処理し、既存の実装に他のオプションを渡します(標準処理の仕組みを見るにはhelperApps.jsを見てください)。

+0

ありがとう、Matthew。それ以上の簡単な例はありますか?ラジオボタンを追加するだけで(実際にはすでに行っています)、ユーザーがそれを選択した場合 - 私の機能を実行します(今私はこれをどうやって行うのか分かりません)。 –

関連する問題