Как заставить Firefox вызывать функцию в расширении при загрузке файла? - PullRequest
2 голосов
/ 07 апреля 2010

Можно ли заставить Firefox вызывать функцию JavaScript в моем расширении, когда оно завершает загрузку (передавая путь к загруженному файлу)?

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Н.В.М., узнал сам - если кому-то понадобится: https://developer.mozilla.org/en/Code_snippets/Downloading_Files

0 голосов
/ 04 августа 2013

Решение для копирования / вставки. Наслаждайтесь

function DownloadFile(sLocalFileName, sRemoteFileName)
{
    var saveToDirectory = 'C:\\Users\\louis\\downloads\\';

    var chrome = require("chrome");

    var oIOService = chrome.Cc["@mozilla.org/network/io-service;1"].getService(chrome.Ci.nsIIOService)

    var oLocalFile = chrome.Cc["@mozilla.org/file/local;1"].createInstance(chrome.Ci.nsILocalFile);
    oLocalFile.initWithPath(saveToDirectory + sLocalFileName);

    var oDownloadObserver = {onDownloadComplete: function(nsIDownloader, nsresult, oFile) {console.log('download complete...')}};

    var oDownloader = chrome.Cc["@mozilla.org/network/downloader;1"].createInstance();
    oDownloader.QueryInterface(chrome.Ci.nsIDownloader);
    oDownloader.init(oDownloadObserver, oLocalFile);

    var oHttpChannel = oIOService.newChannel(sRemoteFileName, "", null);
    oHttpChannel.QueryInterface(chrome.Ci.nsIHttpChannel);
    oHttpChannel.asyncOpen(oDownloader, oLocalFile);    

}
DownloadFile("saveAsThis.mp3","http://domain.com/file.mp3");
...