2
我有這個功能來下載文件:下載窗口中的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