下载窗口中的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的下载窗口。我如何让文件出现在下载窗口中并查看进度?
虽然此链接可以回答这个问题,这是[更好地包括这里的答案的关键部位(http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-链接 - 其他地方 - 真正的好答案/ 8259#8259)并提供链接以供参考。如果链接页面更改,则仅链接答案可能会失效。如果目标网站无法访问或永久离线,请始终引用重要链接中最相关的部分。 – Makyen 2016-07-08 19:13:42
@Makyen,我不认为这些是标准的,当我五年前回答了这个:)我还链接到一个特定的修订所以它不会死。 – sdwilsh 2016-07-20 00:40:11
是的,这些年来标准已经发生了变化。然而,现行的标准被追溯应用,因为如果旧链接的投票答案只是链接,就会被删除。虽然我并不同意这种看法,([我在那个荟萃了高,投票,死链接的答案应该有联系后改为档案馆(http://meta.stackoverflow.com/questions/323508/what-to-do-与破碎,但-高度upvoted链接只-答案/ 323562#323562)),现实情况是,如果他们被标记把它们在低质量的帖子审核队列这样的答案被删除。我没有举出这个答案给它一个更新的机会。 – Makyen 2016-07-20 00:53:46