window.location.href下载防止跳转页面
时间: 2023-11-02 09:03:48 浏览: 150
window.location.href页面跳转的用法(区别于redirect)
4星 · 用户满意度95%
可以使用 `XMLHttpRequest` 对象来下载文件,并且不会发生页面跳转。具体步骤如下:
1. 创建一个 `XMLHttpRequest` 对象。
2. 设置请求的方法为 `GET`,请求的 URL 为文件的下载链接。
3. 设置 `responseType` 为 `blob`,表示响应类型为二进制数据。
4. 发送请求。
5. 在 `onload` 事件中获取响应数据,并使用 `URL.createObjectURL` 方法创建一个下载链接。
6. 创建一个 `a` 标签,将下载链接赋值给 `href` 属性,并设置 `download` 属性为文件名。
7. 模拟点击 `a` 标签进行下载。
下面是示例代码:
```javascript
function downloadFile(url, filename) {
const xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
const blob = xhr.response;
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = downloadUrl;
a.download = filename;
document.body.appendChild(a);
a.click();
a.remove();
}
};
xhr.send();
}
```
调用示例:
```javascript
downloadFile('http://example.com/file.pdf', 'file.pdf');
```
阅读全文