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

问题描述:

我有这个功能来下载文件:下载窗口中的firefox下载文件 - Firefox扩展!

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的下载窗口。我如何让文件出现在下载窗口中并查看进度?

This应该给你做这个正确的方式一个良好的开端。

+0

虽然此链接可以回答这个问题,这是[更好地包括这里的答案的关键部位(http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-链接 - 其他地方 - 真正的好答案/ 8259#8259)并提供链接以供参考。如果链接页面更改,则仅链接答案可能会失效。如果目标网站无法访问或永久离线,请始终引用重要链接中最相关的部分。 – Makyen 2016-07-08 19:13:42

+0

@Makyen,我不认为这些是标准的,当我五年前回答了这个:)我还链接到一个特定的修订所以它不会死。 – sdwilsh 2016-07-20 00:40:11

+0

是的,这些年来标准已经发生了变化。然而,现行的标准被追溯应用,因为如果旧链接的投票答案只是链接,就会被删除。虽然我并不同意这种看法,([我在那个荟萃了高,投票,死链接的答案应该有联系后改为档案馆(http://meta.*.com/questions/323508/what-to-do-与破碎,但-高度upvoted链接只-答案/ 323562#323562)),现实情况是,如果他们被标记把它们在低质量的帖子审核队列这样的答案被删除。我没有举出这个答案给它一个更新的机会。 – Makyen 2016-07-20 00:53:46