js中使用其他的页面传递的URL.createObjectURL下载文件失败没反应
时间: 2023-11-11 12:09:45 浏览: 191
在 JavaScript 中使用 `URL.createObjectURL` 可以创建一个 URL 对象,该对象可以用于以链接形式访问 Blob 对象或 File 对象。如果您使用这种方法下载文件时没有反应,可能是因为您没有正确地创建 Blob 对象或 File 对象,或者没有正确地使用 URL 对象。以下是一个例子,可以帮助您更好地理解如何使用 `URL.createObjectURL` 下载文件:
```javascript
// 创建一个 Blob 对象
const content = 'Hello World!';
const blob = new Blob([content], { type: 'text/plain' });
// 创建一个下载链接
const url = URL.createObjectURL(blob);
// 创建一个 <a> 标签,用于下载文件
const link = document.createElement('a');
link.href = url;
link.download = 'hello.txt';
// 将 <a> 标签添加至页面中,并模拟点击下载
document.body.appendChild(link);
link.click();
// 下载完成后,释放 URL 对象
window.addEventListener('unload', () => {
URL.revokeObjectURL(url);
});
```
上面的代码将创建一个名为 `hello.txt` 的文本文件,并将其作为下载链接添加到页面中。当用户点击链接时,文件将被下载到他们的设备上。下载完成后,我们使用 `URL.revokeObjectURL` 方法释放 URL 对象。
请注意,浏览器可能会阻止自动触发下载,因此我建议您在用户点击按钮或链接时手动触发下载。
阅读全文