Javascript 是否向“下载文件”对话框添加选项?

Javascript 是否向“下载文件”对话框添加选项?,javascript,firefox,firefox-addon,firefox-addon-sdk,firefox-addon-restartless,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,Firefox Addon Restartless,我正在尝试为某个文件类型编写一个插件,我想在“打开方式”和“保存文件”选项下的“下载文件”对话框中添加一个“发送到我的插件名”选项。不是指下载管理器 使用Firefox插件SDK有没有办法实现这一点?这是我的第一个扩展,因此我对SDK或更高级的XUL插件不太熟悉。我不知道如何使用插件SDK实现这一点。但这是我如何从引导插件中实现的 我会使用Services.wm.addEventListener来添加这个,并监听chrome://mozapps/content/downloads/unknown

我正在尝试为某个文件类型编写一个插件,我想在“打开方式”和“保存文件”选项下的“下载文件”对话框中添加一个“发送到我的插件名”选项。不是指下载管理器


使用Firefox插件SDK有没有办法实现这一点?这是我的第一个扩展,因此我对SDK或更高级的XUL插件不太熟悉。

我不知道如何使用插件SDK实现这一点。但这是我如何从引导插件中实现的

我会使用
Services.wm.addEventListener
来添加这个,并监听
chrome://mozapps/content/downloads/unknownContentType.xul

var windowListener = {
    //DO NOT EDIT HERE
    onOpenWindow: function(aXULWindow) {
        // Wait for the window to finish loading
        let aDOMWindow = aXULWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowInternal || Ci.nsIDOMWindow);
        aDOMWindow.addEventListener('load', function() {
            aDOMWindow.removeEventListener('load', arguments.callee, false);
            windowListener.loadIntoWindow(aDOMWindow);
        }, false);
    },
    onCloseWindow: function(aXULWindow) {},
    onWindowTitleChange: function(aXULWindow, aNewTitle) {},
    register: function() {
        // Load into any existing windows
        let DOMWindows = Services.wm.getEnumerator(null);
        while (DOMWindows.hasMoreElements()) {
            let aDOMWindow = DOMWindows.getNext();
            windowListener.loadIntoWindow(aDOMWindow);
        }
        // Listen to new windows
        Services.wm.addListener(windowListener);
        registered = true;
    },
    unregister: function() {
        // Unload from any existing windows
        let DOMWindows = Services.wm.getEnumerator(null);
        while (DOMWindows.hasMoreElements()) {
            let aDOMWindow = DOMWindows.getNext();
            windowListener.unloadFromWindow(aDOMWindow);
        }
        for (var u in unloaders) {
            unloaders[u]();
        }
        //Stop listening so future added windows dont get this attached
        Services.wm.removeListener(windowListener);
    },
    //END - DO NOT EDIT HERE
    loadIntoWindow: function(aDOMWindow) {
        if (!aDOMWindow) {
            return;
        }
        if (aDOMWindow.location == 'chrome://mozapps/content/downloads/unknownContentType.xul'); {
            //check file type
            var fileName = aDOMWindow.document.getElementById('location').value;
            var fileType = fileName.substr(fileName.lastIndexOf('.'));

            if (fileType == 'zip') {
                var myxul = document.createElementNS('xul namescpae here look it up', 'element you want');
                aDOMWindow.document.insertBefore(elementToInsertBefore, myXul);
            }
        }
    },
    unloadFromWindow: function(aDOMWindow) {
        if (!aDOMWindow) {
            return;
        }
    }
}
};