Javascript 使用Firefox插件(SDK)保存网站图像

Javascript 使用Firefox插件(SDK)保存网站图像,javascript,firefox-addon,firefox-addon-sdk,Javascript,Firefox Addon,Firefox Addon Sdk,我可以在网站上获取图像的URL,但我想将图像下载到本地驱动器。我实际上想要标准的下载提示。使用Firefox插件SDK(使用Javascript)实现这一点的最佳方法是什么?因此,我使用了一些从Firefox中提取的代码,将其拼凑起来。我不理解其中涉及的一些范围问题,这不会提示用户保存位置或方式。就我而言,它是有效的,但如果有更好的解决方案,我希望有更好的解决方案 function DownloadImage(aURLToDownload, aSaveToFile) { try {

我可以在网站上获取图像的URL,但我想将图像下载到本地驱动器。我实际上想要标准的下载提示。使用Firefox插件SDK(使用Javascript)实现这一点的最佳方法是什么?

因此,我使用了一些从Firefox中提取的代码,将其拼凑起来。我不理解其中涉及的一些范围问题,这不会提示用户保存位置或方式。就我而言,它是有效的,但如果有更好的解决方案,我希望有更好的解决方案

function DownloadImage(aURLToDownload, aSaveToFile)
{
    try {

        // download from: aURLToDownload
        var downloadURI = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService).newURI(aURLToDownload, null, null);
        console.log("Saving from: " + aURLToDownload);

        // download destination
        console.log("Saving as: " + aSaveToFile);
        var outputFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); 
        outputFile.initWithPath(aSaveToFile)

        var persist = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Ci.nsIWebBrowserPersist);

        persist.progressListener = {
            // onComplete: function(){
                // alert("Download complete: " + aSaveToFile);
            // }
            onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) {
                var percentComplete = (aCurTotalProgress/aMaxTotalProgress)*100;
                console.log(percentComplete +"%");
            }
            // onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
            // }
        };

        persist.saveURI(downloadURI, null, null, null, "", outputFile);
    } catch (e) {
        console.log(e);
    }
}