- 遇到了从zip文件导出来的文件,文件路径变成"blob:"开头
- 下面那个函数可以直接把那个blob:文件转为可以在loader.load(url,callback)的url参数使用
window.BlobToDataURL = (blobUrl) => {
var xhr = new XMLHttpRequest;
xhr.responseType = 'blob';
xhr.onload = function() {
var recoveredBlob = xhr.response;
var reader = new FileReader;
reader.onload = function() {
var blobAsDataUrl = reader.result;
console.log(blobAsDataUrl)
};
reader.readAsDataURL(recoveredBlob);
};
xhr.open('GET', blobUrl);
xhr.send();
}
- 后面想着把所有的url转为blob
- 先遍历JSON,
function getAllJson(jsons) {
for(key in jsons) {
if(!(jsons[key] instanceof Object)){
jsons[key] = '1';
}else{
getAllJson(jsons[key]);
}
}
};
```- 汇总
```js
async function getAllJson(jsons) {
for(key in jsons) {
if(!(jsons[key] instanceof Object)){
if(jsons[key] !== undefined && jsons[key] !== null && jsons[key].toString().toUpperCase().indexOf('HTTP') === 0){
await BlobToDataURL(jsons[key]).then((src)=>{
jsons[key] = src;
console.log(jsons[key]);
});
}
}else{
getAllJson(jsons[key]);
}
}
};
function BlobToDataURL(blobUrl){
return new Promise((resolve) => {
var xhr = new XMLHttpRequest;
xhr.responseType = 'blob';
xhr.onload = function() {
var recoveredBlob = xhr.response;
var reader = new FileReader;
reader.onload = function() {
resolve(reader.result);
};
reader.readAsDataURL(recoveredBlob);
};
xhr.open('GET', blobUrl);
xhr.send();
})
}