2023-07-08 18:15:48 +08:00

47 lines
1.2 KiB
JavaScript

export function getUrl(src){
if(typeof src === 'string'){
return src;
}else if(src instanceof Blob){
return URL.createObjectURL(src);
}else if(src instanceof ArrayBuffer){
return URL.createObjectURL(new Blob([src]));
}else if(src instanceof Response){
return URL.createObjectURL(src.blob());
}else{
return src;
}
}
export function loadScript(src){
return new Promise(((resolve, reject) => {
let script = document.createElement('script');
script.src = src;
script.onload = function (){
resolve();
};
script.onerror = function (){
reject();
};
document.body.append(script);
}));
}
export async function download(filename, data){
if(!data){
return;
}
if (data instanceof ArrayBuffer) {
data = new Blob([data]);
}
downloadFile(filename, URL.createObjectURL(data));
}
export function downloadFile(filename, href){
let eleLink = document.createElement('a');
eleLink.download = filename;
eleLink.style.display = 'none';
eleLink.href = href;
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
}