js实现⽂件流下载⽂件
window.location.href的⽤法
javascript中的location.href有很多种⽤法,主要如下。
如何下载javascriptself.location.href="/url"当前页⾯打开URL页⾯
location.href="/url"当前页⾯打开URL页⾯
windows.location.href="/url"当前页⾯打开URL页⾯,前⾯三个⽤法相同。
this.location.href="/url"当前页⾯打开URL页⾯
parent.location.href="/url"在⽗页⾯打开新页⾯
top.location.href="/url"在顶层页⾯打开新页⾯
如果页⾯中⾃定义了frame,那么可将parent self top换为⾃定义frame的名称,效果是在frame窗⼝打开url地址
此外,window.location.href=window.location.href;和Reload()和都是刷新当前页⾯。区别在于是否有提交数据。当有提交数据时,Reload()会提⽰是否提交,window.location.href=window.location.href;则是向指定的url提交数据
// ⽂件流转blob对象下载
function downloadFile(data, type, fileName){
let blob =new Blob([data],{type: `application/${type};charset=utf-8`});
// 获取heads中的filename⽂件名
let downloadElement = ateElement('a');
// 创建下载的链接
let href = ateObjectURL(blob);
downloadElement.href = href;
// 下载后⽂件名
downloadElement.download = fileName;
document.body.appendChild(downloadElement);
// 点击下载
downloadElement.click();
// 下载完成移除元素
veChild(downloadElement);
// 释放掉blob对象
vokeObjectURL(href);
}
// http请求函数,⽀持配置请求和响应参数
function ajaxRequest(method, url, type){
return new Promise((resolve, reject)=>{
const req =new XMLHttpRequest();
req.open(method, url,true);
// readyState == 4说明请求已完成
adyState ===4){
const data = sponse;
// 获取⽂件名
const content = ResponseHeader('Content-Disposition');
const fileName = content && content.split(';')[1].split('filename=')[1];
if(req.status ===200|| req.status ===304){
resolve({data, fileName});
}
else{
reject(data);
}
}
};
// 发送数据
req.send();
});
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论