Javascript 在带有背景和内容脚本的Chrome扩展中,何时可以调用revokeObjectURL?

Javascript 在带有背景和内容脚本的Chrome扩展中,何时可以调用revokeObjectURL?,javascript,google-chrome-extension,revokeobjecturl,createobjecturl,Javascript,Google Chrome Extension,Revokeobjecturl,Createobjecturl,我使用XMLHttpRequest从本地文件系统上传文件。我正在遵循提出的建议 这是在后台脚本中使用以下代码启动的 function uploadLocalFilesAndSend(msg){ var xhr = [], i; var x = 0; var filePaths = msg.UploadDocumentFileInfoList; for (i = 0; i < filePaths.length; i++){ (function(i){ xhr[i] =

我使用XMLHttpRequest从本地文件系统上传文件。我正在遵循提出的建议

这是在后台脚本中使用以下代码启动的

function uploadLocalFilesAndSend(msg){
var xhr = [], i;
var x = 0;
var filePaths = msg.UploadDocumentFileInfoList;
for (i = 0; i < filePaths.length; i++){
    (function(i){
        xhr[i] = new XMLHttpRequest();
        var url = 'File:///' + filePaths[i].FilePath;
        console.log('uploadLocalFilesAndSend - URL being used: ' + url);
        xhr[i].open('GET', url, true);
        xhr[i].responseType = 'blob';
        xhr[i].onload = function() {
            x += 1;
            var newURL = URL.createObjectURL(xhr[i].response);
                console.log('uploadLocalFilesAndSend - newURL: ' + newURL);
                msg.UploadDocumentFileInfoList[i].PathURL = newURL;
                if (x == filePaths.length) {
                    chrome.tabs.sendMessage(ipasTabID, msg);
                }
        };
        xhr[i].send();
    })(i);
}
}
函数uploadLocalFilesAndSend(msg){
var xhr=[],i;
var x=0;
var filepath=msg.UploadDocumentFileInfoList;
对于(i=0;i
上载每个文件时,createObjectURL用于创建新的URL对象。然后通过消息将这些URL传递给内容脚本。内容脚本与在生成新URL的文件上再次调用createObjectURL几乎相同。这些URL然后被发送到一个网页,在那里它们被用来获取相应的文件

每次这样做时,我都会在后台脚本中创建一组URL对象,然后在内容脚本中创建一组新对象

我应该什么时候调用revokeObjectURL

我认为对于在后台脚本中创建的URL对象,只有在内容脚本检索到文件并创建了新的URL对象之后,我才能调用revokeObjectURL,对吗?其次,在文件安全上传到网页之前,我无法对内容脚本中创建的URL调用revokeObjectURL


如果我是正确的,那么我可以调用背景脚本在内容脚本中创建的URL上的revokeObjectURL吗

在内容脚本读取该脚本后,从后台撤消该脚本。在上传后撤销第二个。听起来不错。在内容脚本中从后台撤销一个可以吗?可以,应该可以。谢谢。根据以前的经验,创建一个答案不是你的角色,但是,一旦我确定这是好的,我将回答我自己的完整性问题。