我需要为与 Firefox 29 兼容的扩展生成下载文件的历史列表。Downloads.jsm仅检索事件 session 的下载列表。我需要获取所有下载文件的列表。我的意思是那些下载的,比如说,两周前。
如何获取 Firefox 29 的下载历史记录?
最佳答案
您必须查询Places
数据库。
var sqlstr = "SELECT title FROM moz_places WHERE id IN (SELECT place_id FROM moz_historyvisits WHERE visit_type = 7)"
var conn = PlacesUtils.history.QueryInterface(Ci.nsPIPlacesDatabase).DBConnection;
var stmt = conn.createAsyncStatement(sqlstr);
stmt.executeAsync({
_filenames: [],
handleResult: function(aResultSet){
let row;
while((row = aResultSet.getNextRow())){
this._filenames.push(row.getResultByIndex(0));
}
},
handleError: function(aError){
},
handleCompletion: function(aReason){
console.log(this._filenames.join(","))
}
});
那个神秘的 7 就是 Ci.nsINavHistoryService.TRANSITION_DOWNLOAD
的值。
关于javascript - 在 Firefox 29+ 中查询下载历史列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23749954/