如何向unknownContentType对话框添加一个动作?

时间:2011-07-26 17:11:45

标签: firefox-addon

如果用户下载特定类型的文件(比方说.doc),除了在unknownContentType Firefox对话框中保存并打开之外,我还应该再显示一个项目(即可能的操作)。

我该怎么做?

更新。查看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 个答案:

答案 0 :(得分:1)

要覆盖的重要文件是unknownContentType.xul。您可以在此处查看示例:http://code.google.com/p/firedownload/source/browse/chrome/content/unknownContentType-overlay.xul。这会在对话框中添加一个新复选框,但您可以使用相同的方法添加新的单选按钮。您需要在叠加层中包含一个新的JS文件(例如本示例中的unknownContentType-overlay.js),您可以在其中覆盖单选按钮的标准处理。处理新选项并将其他选项移交给现有实现(查看helperApps.js以了解标准处理的工作原理)。