vue中不使用a链接的download属性,实现点击a链接下载一个文件
时间: 2024-10-19 13:02:39 浏览: 21
在Vue中,如果你想要实现点击非`<a>`标签下载文件,通常你可以创建一个按钮或者使用自定义指令来模拟这样的功能。下面是一个基本示例:
```html
<button @click="downloadFile('your-file-name.txt')">下载文件</button>
<script>
export default {
methods: {
downloadFile(fileName) {
const blob = new Blob([`内容数据...`], {type: 'application/octet-stream'});
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = fileName; // 下载名称
a.click();
// 等待下载完成后再清除URL
setTimeout(() => {
URL.revokeObjectURL(url);
a.remove(); // 清除临时元素
}, 0);
},
},
};
</script>
```
在这个例子中,我们首先创建了一个Blob对象,它代表了我们要下载的数据。然后创建一个新的`<a>`元素,并设置其`href`属性指向这个临时URL。接着触发`click`事件来激活下载,最后在下载完成后通过`URL.revokeObjectURL`清除URL并移除临时`<a>`元素。
阅读全文