【问题标题】:Save website image using a Firefox Addon (SDK)使用 Firefox 插件 (SDK) 保存网站图像
【发布时间】:2012-12-27 02:30:19
【问题描述】:

我能够获取网站上图像的 URL,但我想将图像下载到本地驱动器。我实际上想要标准的下载提示。使用 Firefox Addon SDK(使用 Javascript)执行此操作的最佳方法是什么?

【问题讨论】:

    标签: javascript firefox-addon firefox-addon-sdk


    【解决方案1】:

    因此,我使用从 Firefox 的 nsIWebBrowserPersist docs 提取的一些代码,将其拼凑在一起。我不了解所涉及的一些范围问题,这不会提示用户在何处或如何保存。就我的目的而言,它有效,但如果有一个更好的解决方案,我想要一个更好的解决方案。

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多