2011-07-26 2 views
1

В случае, если пользователь загружает определенный тип файла (скажем, .doc), я должен показать еще один элемент (например, возможное действие) в дополнение к Save and Open в диалоговом окне unknownContentType Firefox.Как добавить еще одно действие в диалог unknownContentType?

Как я могу это сделать?

Обновление. Глядя на 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 

Почему у них есть два накладок? Какая вторая? И как понять, что пользователь выбрал мой вариант?

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

Спасибо, Мэтью. Есть ли более простой пример? Мне просто нужно добавить переключатель (на самом деле, я уже это сделал), и если пользователь выбрал это, запустите мою функцию (теперь я не совсем понимаю, как это сделать). –

Смежные вопросы