Google chrome extension 如何获取已下载文件的下载ID?
我希望能够使用扩展名下载文件,并记住下载ID以备将来使用。我最初尝试这样做是通过使用回调函数并将downloadId指定为如下变量:Google chrome extension 如何获取已下载文件的下载ID?,google-chrome-extension,Google Chrome Extension,我希望能够使用扩展名下载文件,并记住下载ID以备将来使用。我最初尝试这样做是通过使用回调函数并将downloadId指定为如下变量: chrome.downloads.download({ url: downloadURL }, function getDownloadId(downloadId) { var thisDownloadId = downloadId; } ); 但这导致了我的Chromebook崩溃,所以我认为这不会起作用 我试图使用来自
chrome.downloads.download({
url: downloadURL
},
function getDownloadId(downloadId) {
var thisDownloadId = downloadId;
}
);
但这导致了我的Chromebook崩溃,所以我认为这不会起作用
我试图使用来自的解决方案。然而,当我尝试使用上述解决方案时,结果是出现以下错误:
TypeError: Cannot read property 'current' of undefined.
这是我下载文件(popup.js)的脚本片段
以及等待文件下载的代码段,当前仅显示用于测试的downloadId(popup.js)
downloadId变量由于位于回调函数中而被销毁。我需要使用chrome.storage api将其发布出来 下载功能(已修改) downloadId警报功能:
chrome.storage.local.get(['downloadId'], function(result) {
var downloadId = result.downloadId;
alert(downloadId);
});
当前,您正在回调函数中创建变量,因此当函数完成时,它会立即被销毁。根据您以后使用id的具体方式,您可以将其保存在chrome.storage.local或localStorage(作为字符串)中,并查看示例。谢谢您,wOxxOm!这个评论对我帮助很大。我从未想过使用chrome.storage API。
chrome.downloads.onChanged.addListener(function (
if(detail.state.current == "complete") { // This is where the error occurs
var downloadId = detail.id;
alert("downloadId: " + downloadId);
}
});
chrome.downloads.download({
url: downloadURL
},
function(downloadId) {
chrome.storage.local.set({'downloadId': downloadId}, function() {
console.log("Store Download ID.");
chrome.storage.local.set({'downloadId': downloadId});
})
}
);
chrome.storage.local.get(['downloadId'], function(result) {
var downloadId = result.downloadId;
alert(downloadId);
});