下载窗口中的firefox下载文件 - Firefox扩展!

时间:2011-06-09 11:08:38

标签: javascript firefox-addon xul

我有这个功能来下载文件:

function downloadFile(httpLoc)
{
try {
    // new obj_URI object
    var obj_URI = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).newURI(httpLoc, null, null);

    // new file object
    var obj_TargetFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);

    obj_TargetFile.initWithPath("d:\\te.zip");

    if(!obj_TargetFile.exists()) {
        obj_TargetFile.create(0x00,0644);
    }

    var obj_Persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist);



    obj_Persist.progressListener = {
        onProgressChange : function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress){
            var percentComplete = (aCurTotalProgress/aMaxTotalProgress)*100;
            var ele = document.getElementById("progress element");
            ele.innerHTML = percentComplete + "%";
        },
        onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
        }
    }

    // with persist flags
    const nsIWBP = Components.interfaces.nsIWebBrowserPersist;
    const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES;
    obj_Persist.persistFlags = flags | nsIWBP.PERSIST_FLAGS_FROM_CACHE;

    //save file to target
    obj_Persist.saveURI(obj_URI, null, null, null, "", obj_TargetFile);
}
catch (e) 
{
    alert(e);
}
}

文件正在下载,但我没有在Firefox下载窗口中看到它。如何使文件显示在下载窗口中并查看进度?

1 个答案:

答案 0 :(得分:2)

This应该为您提供正确的方法。